vue3组件库form表单的使用

 在每一个 form 组件中,你需要一个 form-item 字段作为输入项的容器,用于获取值与验证值。

表单组件中常见的表单项有输入框,单选框,多选框,下拉菜单,开关,时间选择器,上传,按钮等......

<el-form :model="form" label-width="auto" style="max-width: 600px">
    <el-form-item label="Activity name">
      <el-input v-model="form.name" />
    </el-form-item>
</el-form>

表单常用属性:

  • model:用于绑定表单数据对象,可以使用v-model绑定表单元素。
  • rules:表单校验规则。
  • inline:设置是否为行内表单。
  • disabled:设置表单项是否禁用。 

表单常用方法: 

  • validate:用于触发表单验证,如果验证成功,执行回调函数并传递 true,否则传递 false
  • resetFields:用于重置表单数据和验证状态。
  • clearValidate:用于清除表单验证状态。
  • validateField:用于触发指定表单元素的验证。
  • submit:用于提交表单数据,需要指定一个回调函数,该函数在提交成功或失败时被调用。

表单项常用属性: 

  • prop:model的键值
  • label:标签文本
在基于 Vue 的模块化表单组件库中,有以下几个推荐的库,它们在实际开发中被广泛使用,并支持模块化构建,能够满足复杂的表单交互需求。 ### 表单组件库推荐 1. **Vuelidate** - Vuelidate 是一个轻量级的表单验证库,专注于提供基于模型的验证机制,支持 Vue 2 和 Vue 3。 - 它通过响应式数据模型实现验证逻辑,无需依赖 DOM 操作,非常适合模块化开发场景。 - 示例代码: ```javascript import useVuelidate from &#39;@vuelidate/core&#39; import { required, email } from &#39;@vuelidate/validators&#39; export default { setup () { const state = reactive({ form: { email: &#39;&#39;, } }) const rules = { email: { required, email } } const v$ = useVuelidate(rules, state.form) return { state, v$ } } } ``` 2. **VeeValidate** - VeeValidate 是一个功能强大的表单验证库,支持字段级别的验证、异步验证、多语言支持等。 - 它提供了与 Vue 模板高度集成的 API,适合需要复杂验证逻辑的项目。 - 示例代码: ```vue <template> <Form @submit="onSubmit"> <Field name="email" type="email" rules="required|email" /> <ErrorMessage name="email" /> <button type="submit">Submit</button> </Form> </template> <script> import { Form, Field, ErrorMessage } from &#39;vee-validate&#39; export default { components: { Form, Field, ErrorMessage }, methods: { onSubmit(values) { console.log(values) } } } </script> ``` 3. **Element Plus** - Element Plus 是 Element UI 的 Vue 3 版本,提供了一整套 UI 组件,其中包含功能完善的表单组件。 - 它内置了表单验证功能,支持自定义验证规则,适合快速构建企业级管理系统。 - 示例代码: ```vue <template> <el-form :model="form" :rules="rules" label-width="120px"> <el-form-item label="Email" prop="email"> <el-input v-model="form.email" /> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { email: &#39;&#39; }, rules: { email: [ { required: true, message: &#39;Please input email address&#39;, trigger: &#39;blur&#39; }, { type: &#39;email&#39;, message: &#39;Please input a valid email&#39;, trigger: [&#39;blur&#39;, &#39;change&#39;] } ] } } } } </script> ``` 4. **Vue Formulate** - Vue Formulate 是一个高度模块化的表单构建库,专注于提供可定制的表单字段和验证机制。 - 它支持字段类型扩展、主题定制、多语言支持等功能,适合需要高度定制化的项目。 - 示例代码: ```vue <template> <FormulateForm v-model="formValues"> <FormulateInput type="email" label="Email address" validation="required|email" /> <FormulateInput type="submit" label="Create account" /> </FormulateForm> </template> <script> export default { data() { return { formValues: {} } } } </script> ``` ### 总结 - 如果需要轻量且高效的验证库,推荐使用 **Vuelidate** 或 **VeeValidate**。 - 如果希望快速构建企业级管理系统,推荐使用 **Element Plus**。 - 如果需要高度定制化的表单解决方案,推荐使用 **Vue Formulate**。 以上库均支持模块化开发,能够很好地集成到 Vue 项目中[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值