Vue3动态表单

简介: Vue3动态表单

示例代码如下:

// 引入需要的依赖包
import { ref, reactive } from 'vue';
import { useForm } from '@/composables/useForm';
// 定义表单数据模型
const formModel = reactive({
  name: '',
  age: '',
  gender: '',
});
// 使用自定义的useForm函数创建表单实例
const { register, validate, resetFields } = useForm(formModel);
// 注册表单字段
register('name', { required: true, message: '请输入姓名' });
register('age', { required: true, message: '请输入年龄', type: 'number', min: 18, max: 60 });
register('gender', { required: true, message: '请选择性别' });
// 提交表单
const onSubmit = () => {
  if (validate()) {
    console.log('表单验证通过,提交数据:', formModel);
    resetFields();
  } else {
    console.log('表单验证失败');
  }
};
// 重置表单
const onReset = () => {
  resetFields();
};
// 导出组件选项
export default {
  setup() {
    return {
      formModel,
      register,
      validate,
      onSubmit,
      onReset,
    };
  },
};

在这段代码中,我们首先引入了refreactive函数以及useForm函数。然后定义了一个表单数据模型formModel,并使用useForm函数创建了一个表单实例。接着注册了表单字段,并对每个字段进行了一些基本的验证规则设置。最后,我们定义了提交表单和重置表单的方法,并在组件中使用这些方法。

相关文章
|
9天前
vue3【实战】语义化首页布局
vue3【实战】语义化首页布局
28 2
|
9天前
|
存储 容器
vue3【实战】来回拖拽放置图片
vue3【实战】来回拖拽放置图片
19 2
|
9天前
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
32 1
|
9天前
|
API
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
Pinia 实用教程【Vue3 状态管理】状态持久化 pinia-plugin-persistedstate,异步Action,storeToRefs(),修改State的 $patch,$reset
19 1
|
9天前
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
17 1
|
9天前
|
JavaScript API
vue3【实用教程】组件(含父子组件传值 defineProps,自定义事件 defineEmits,defineProps,插槽 slot,动态组件 :is 等)
vue3【实用教程】组件(含父子组件传值 defineProps,自定义事件 defineEmits,defineProps,插槽 slot,动态组件 :is 等)
17 1
|
9天前
|
JavaScript 网络架构
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
48 0
vue3 【提效】自动路由(含自定义路由) unplugin-vue-router 实用教程
|
4天前
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
【vue3】Argumnt of type ‘history:RouterHistory;}is not assignable to paraeter of type ‘RouterOptions‘.
6 0
|
4天前
|
JavaScript
【vue3】vue3中路由hash与History的设置
【vue3】vue3中路由hash与History的设置
9 0
|
4天前
|
编解码 前端开发
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
11 0