form表单的三种封装方法(Vue+ElementUI)
在Vue中使用Element UI时,可以通过三种不同的方式来封装表单:
- 使用
v-model
进行数据双向绑定。 - 使用
v-model
结合form
元素和rules
属性进行表单验证。 - 使用
ref
属性来直接访问表单实例并进行验证或操作。
以下是每种方法的示例代码:
方法1: 使用v-model
<template>
<el-form>
<el-form-item label="用户名">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
username: '',
password: ''
}
};
},
methods: {
submitForm() {
console.log(this.form);
// 提交表单逻辑
}
}
};
</script>
方法2: 使用v-model
和表单验证规则
<template>
<el-form :model="form" :rules="rules">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
username: '',
password: ''
},
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, message: '密码长度不少于6个字符', trigger: 'blur' }
]
}
};
},
methods: {
submitForm() {
this.$refs['form'].validate((valid) => {
if (valid) {
console.log(this.form);
// 提交表单逻辑
} else {
console.log('表单验证失败');
return false;
}
});
}
}
};
</script>
方法3: 使用ref
直接访问表单实例
<template>
<el-form ref="formRef">
<el-form-item label="用户名">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
e
评论已关闭