VUE3+Element-plus中el-form的使用示例代码

 更新时间:2024年07月06日 10:15:44   作者:尘烟生活家  
这篇文章主要介绍了VUE3+Element-plus中el-form的使用示例代码,本文通过图文示例代码相结合给大家介绍的非常详细,需要的朋友可以参考下

实现效果

Element-plus使用el-form必须配置ref和model属性,二者的值不能相同(在ElementUI中是可以相同的)。ref的值在声明的时候要引入FormInstance,这个又必须在script中声明lang为ts,不能使用js。这样就必须引入对ts的支持​

step 1:安装vue-loader和vue-template-compiler

step 2:安装typescript​

step 3:安装ts-loader​

关键点

1.el-form的ref和model属性的参数值必须不一样,否则会冲突

2.每个el-form-item必须设置prop属性,否则重置方法resetFields不生效

3.重置方法使用的formRef后面需要增加.value,因为声明的是ref。否则重置方法resetFields不生效

4.要控制表单项的布局,使用el-row和el-col是不错的方法,易于控制

完整代码

​<template>
<div>
<el-form :model="form" ref="formRef" >
        <el-row>
          <el-col :span="10">
            <el-form-item label="邮箱" prop="email">
                <el-input v-model="form.email"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="姓名" prop="name">
                <el-input v-model="form.name"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
	<el-form-item>
          <el-button type="primary" @click="submitForm(productId,username)">提交</el-button>
          <el-button @click="resetForm">重置</el-button>
        </el-form-item>
      </el-form>
    </div>
</template>
<script lang="ts" setup>
import type {FormInstance} from "element-plus";
const formRef=ref<FormInstance>()
function resetForm() {
  console.log('this.form',form)
  formRef.value.resetFields()
}
</script>

​增加表单项的校验规则

如果要设置每个el-form-item的校验规则,需要引入FormRules,安装如下方式使用,关键点如下:

1.在el-form设置rules属性

2.引入FormRules

3.声明一个interface,例如RuleForm

4.使用reactive声明model关联的参数form,模板类型为RuleForm

5.使用reactive声明rules关联的参数curRules,模板类型为FormRules<RuleForm>

​
<el-form :model="form" ref="formRef" :rules="curRules">
//...
import type {FormRules} from "element-plus";
interface RuleForm{
  email: String
  name: String
}
let form=reactive<RuleForm>({
  email: '',
  name: '',
})
let curRules=reactive<FormRules<RuleForm>>({
  email: [
    {required: true, message: '请输入邮箱', trigger: 'blur'},
    {type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']}
  ],
  name: [
    {required: true, message: '请输入姓名', trigger: 'blur'}
  ]
)

到此这篇关于VUE3+Element-plus中el-form的使用的文章就介绍到这了,更多相关vue3 Element-plus el-form使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解关于vue-area-linkage走过的坑

    详解关于vue-area-linkage走过的坑

    这篇文章主要介绍了详解关于vue-area-linkage走过的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 如何解决Vue3组合式API模式下动态组件不渲染问题

    如何解决Vue3组合式API模式下动态组件不渲染问题

    这篇文章主要介绍了如何解决Vue3组合式API模式下动态组件不渲染问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教<BR>
    2024-03-03
  • vue3中如何使用ref和reactive定义和修改响应式数据(最新推荐)

    vue3中如何使用ref和reactive定义和修改响应式数据(最新推荐)

    这篇文章主要介绍了vue3中如何使用ref和reactive定义和修改响应式数据,这里就是vue3中setup组合式api中如何定义响应式数据并且修改赋值全部内容,需要的朋友可以参考下
    2022-12-12
  • Vue3 全局实例上挂载属性方法案例讲解

    Vue3 全局实例上挂载属性方法案例讲解

    这篇文章主要介绍了Vue3 全局实例上挂载属性方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • VSCode使用之Vue工程配置eslint

    VSCode使用之Vue工程配置eslint

    这篇文章主要介绍了VSCode使用之Vue工程配置eslint,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 如何在 Vue3 中使用 OpenLayers 实现事件 loadstart 和 loadend

    如何在 Vue3 中使用 OpenLayers 实现事件 loadst

    在这篇文章中,我将详细介绍如何在 Vue3 + OpenLayers 中监听 loadstart 和 loadend 事件,并通过 Vue3 Composition API 进行代码优化,使其更加高效、健壮,感兴趣的朋友一起看看吧
    2025-04-04
  • Vue实现过渡效果的基本方法

    Vue实现过渡效果的基本方法

    Vue 提供了一个强大的过渡系统,可以用于在进入、离开和列表渲染时添加各种动画效果,这些过渡不仅能够提升用户体验,还能使界面更加生动和吸引人,本文将介绍 Vue 中实现过渡效果的基本方法,并提供使用 setup 语法糖的代码示例,需要的朋友可以参考下
    2024-09-09
  • 深入理解 Vue 3 的 watch及用法示例小结

    深入理解 Vue 3 的 watch及用法示例小结

    watch是Vue3中处理响应式数据变化逻辑的基石,这篇文章将带你深入理解Vue3中的watch,涵盖基础用法、高级配置以及与watchEffect的对比,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • vue tab切换,解决echartst图表宽度只有100px的问题

    vue tab切换,解决echartst图表宽度只有100px的问题

    这篇文章主要介绍了vue tab切换,解决echartst图表宽度只有100px的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue项目使用微信公众号支付总结及遇到的坑

    vue项目使用微信公众号支付总结及遇到的坑

    这篇文章主要介绍了vue项目使用微信公众号支付总结,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10

最新评论