Vue3表单提交页面
时间: 2025-01-17 14:46:41 浏览: 35
### Vue3 中创建和处理表单提交页面
#### HTML 文件设置
为了构建一个基于 Vue3 的表单提交页面,首先需要建立一个基础的 HTML 文件。此文件将引入必要的资源并提供一个容器来挂载 Vue 应用程序。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue3 Form Submission</title>
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>
<div id="app"></div>
<!-- 引入 Vant 组件库 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant/lib/index.css">
<script type="module" src="./main.js"></script>
</body>
</html>
```
#### JavaScript (main.js) 配置与逻辑编写
接下来,在 `main.js` 文件中配置应用程序实例,并定义组件以管理表单的状态及其行为:
```javascript
import { createApp } from 'vue';
import { Field, Button, Toast, Form } from 'vant';
const app = createApp({
data() {
return {
formData: {
username: '',
password: ''
},
rules: [
{ required: true, message: '请输入用户名', trigger: 'onSubmit' }
]
};
},
methods: {
onSubmit(values) {
console.log('submit event:', values);
// 进行表单验证
this.$refs.form.validate().then(() => {
// 如果验证通过,则执行实际的数据提交操作
fetch('/api/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(this.formData)
}).then(response => response.json())
.then(data => {
if (data.success) {
Toast.success('登录成功');
} else {
Toast.fail('登录失败');
}
});
}).catch(errorInfo => {
console.error('Validation failed:', errorInfo);
});
}
}
});
// 使用插件
app.use(Field).use(Button).use(Form).use(Toast);
// 挂载到 DOM 节点上
app.mount('#app');
```
#### 渲染模板
最后一步是在应用根节点内渲染表单位置的内容:
```html
<template>
<van-form ref="form" @submit="onSubmit">
<van-field v-model="formData.username"
name="username"
label="用户名"
placeholder="请输入您的用户名"/>
<van-field v-model="formData.password"
:rules="[rule]"
type="password"
name="password"
label="密码"
placeholder="请输入您的密码"/>
<div style="margin-top: 16px;">
<van-button round block type="info" native-type="submit">提交</van-button>
</div>
</van-form>
</template>
```
上述代码展示了如何利用 Vue3 和 Vant UI 组件库快速搭建起具有基本功能的表单界面[^4]。当用户点击按钮触发 `onSubmit()` 方法时会先做本地验证再发送 AJAX 请求给服务器完成最终的数据提交过程[^2]。
阅读全文
相关推荐
















