【区分vue2和vue3下的element UI Form 表单组件,分别详细介绍属性,事件,方法如何使用,并举例】

在Vue 2中,我们通常使用Element UI的表单组件,而在Vue 3中,由于Element UI本身并未直接支持Vue 3,我们通常会使用Element Plus作为替代,它是Element UI的Vue 3版本。下面我将分别介绍Vue 2下Element UI Form和Vue 3下Element Plus Form的属性、事件和方法。

Vue 2 + Element UI Form

属性 (Attributes)
  • model: 一个对象,包含了表单字段的数据。
  • rules: 一个包含了验证规则的对象。
  • inline: 是否为行内表单模式。
  • label-position: 表单域标签的位置,可选值为leftrighttop
  • label-width: 表单域标签的宽度,例如'120px'
  • label-suffix: 标签的后缀。
  • show-message: 是否显示校验错误信息。
  • size: 表单尺寸,可选值为mediumsmallmini
事件 (Events)
  • submit: 提交表单时触发。
  • validate: 验证表单时触发。
方法 (Methods)
  • 通常不直接调用Form组件的方法,而是通过this.$refs[formRef].validate()进行表单验证。
示例
vue 复制代码
<template>
  <el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <!-- 其他表单项 -->
    <el-button type="primary" @click="submitForm('formRef')">提交</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        username: '',
        // 其他字段
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        // 其他规则
      }
    };
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('提交成功!');
        } else {
          console.log('验证失败!');
          return false;
        }
      });
    }
  }
};
</script>

Vue 3 + Element Plus Form

属性 (Attributes)
  • 与Vue 2的Element UI Form类似,但可能有所增减或调整。
  • 具体的属性列表请参考Element Plus的官方文档。
事件 (Events)
  • 与Vue 2的Element UI Form类似,但可能有所增减或调整。
方法 (Methods)
  • Element Plus可能提供了更多的方法或修改了现有方法的行为。
  • 同样,具体的方法列表请参考Element Plus的官方文档。
示例 (使用Composition API)
vue 复制代码
<template>
  <el-form :model="form" :rules="rules" ref="formRef" label-width="120px">
    <el-form-item label="用户名" prop="username">
      <el-input v-model="form.username"></el-input>
    </el-form-item>
    <!-- 其他表单项 -->
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const form = ref({
      username: '',
      // 其他字段
    });
    const rules = ref({
      username: [
        { required: true, message: '请输入用户名', trigger: 'blur' }
      ],
      // 其他规则
    });

    const submitForm = () => {
      const formRef = ref(null); // 注意:这里通常不需要在setup中声明ref,而是在模板中直接使用ref="formRef"
      formRef.value.validate((valid) => {
        if (valid) {
          alert('提交成功!');
        } else {
          console.log('验证失败!');
          return false;
        }
      });
    };

    // 注意:在Composition API中,ref变量直接在模板中使用,不需要在setup中返回
    
相关推荐
Jave210831 分钟前
实现全局自定义loading指令
前端·vue.js
Amumu121381 小时前
Js:正则表达式(一)
开发语言·javascript·正则表达式
月光宝盒造梦师3 小时前
Ant Design Ellipsis 中的判断逻辑 isEleEllipsis 方法非常消耗性能
javascript·react·优化
酉鬼女又兒5 小时前
零基础快速入门前端ES6 核心特性详解:Set 数据结构与对象增强写法(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·es6
慧一居士5 小时前
Vue项目中,子组件调用父组件方法示例,以及如何传值示例,对比使用插槽和不使用插槽区别
前端·vue.js
阿珊和她的猫5 小时前
以用户为中心的前端性能指标解析
前端·javascript·css
SeSs IZED5 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
叫我一声阿雷吧5 小时前
JS 入门通关手册(36):变量提升、暂时性死区与块级作用域
javascript·变量提升·暂时性死区·tdz·块级作用域· 前端面试
成都渲染101云渲染66665 小时前
跳出“硬件堆砌”陷阱|渲染101如何用技术重构云渲染的专业价值?
java·前端·javascript
SuperEugene6 小时前
Vue3 性能优化规范:日常必做优化(不玄学、可落地)|可维护性与兜底规范篇
开发语言·前端·javascript·vue.js·性能优化·前端框架