博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轻松解决element UI 表单重置问题
阅读量:3950 次
发布时间:2019-05-24

本文共 1250 字,大约阅读时间需要 4 分钟。

三步解决


前言

在后台管理系统中,最常见的业务就是CURD,对数据进行增删改,通常情况下新增与编辑我们会做成一个通用组件,我们在不使用v-if的情况下如何重置我们的表单呢?

技术栈:vue3.0 + elementPlus

一、从ui框架入手

方法名 说明
resetFields 对整个表单进行重置,将所有字段值重置为初始值并移除校验结果
clearValidate 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果

我们从elementPlus文档可以获悉到这两个方法,resetFields 好像非常符合我们的需求,但是这里的初始值是指第一次打开的数据为初始值,若用户先通过编辑按钮打开,则再通过新增按钮打开,初始化的值则为编辑按钮打开的数据了。

那我们退而求其次使用 clearValidate 移除表单项的校验结果,我们自己设初始值

二、上手表单

1.设置表单初始值

// 我们在export default 外面设置表单的初始值const moduleForm = {
id: '', username: '', phone: '',}export default {
}

2.表单初始化赋值以及一些通用参数

export default {
data() {
visible: false, // 抽屉/弹窗展示 isEdit: false, // 是否为编辑标识 form: JSON.parse(JSON.stringify(moduleForm)), }}

3.给表单抽屉/弹窗设置open方法

父组件只需通过在组件定义 ref=‘form’

新增按钮中@click="$refs.form.open({})"
编辑按钮中从后端返回到的res丢进open即可$refs.form.open(res)

export default {
open(data) {
// 新增时外面传进来的是空对象,this.form即为moduleForm初始值 Object.assign(this.form, moduleForm,{
...data}) // 通过判断data是否为空 设置编辑标识 this.isEdit = this.notEmpty(data) // 移除表单项的校验结果,异步的校验,使用$nextTick以防万一 this.$nextTick(() => {
const {
form } = this.$refs form && form.clearValidate() }) // 打开抽屉/弹窗 this.visible = true },}

总结

面对CURD一定要总结出一套常规的套路,才能高效完成工作,接下来的时间就可以愉快学习了

转载地址:http://yduzi.baihongyu.com/

你可能感兴趣的文章
2017新生儿爆款名字出炉!90后的父母们最受欢迎的居然是.....
查看>>
全景图解高铁数据,谁是最有潜力的高铁城市?
查看>>
张小龙现场“约战”跳一跳,发布2018微信全新计划(内附演讲全文)
查看>>
爬取电影天堂的最新电影
查看>>
运维总监不会告诉你这些有趣但鲜为人知的 Linux 命令
查看>>
2017新浪微整形年度大数据报告
查看>>
实战 | 用 Python 选股票,据说可以多挣个20%
查看>>
重磅 | 数据挖掘之父韩家炜:文本语料库的数据挖掘(附视频+PPT下载)
查看>>
干货汇总 | 你可能不知道的 Python Web 部署方式总结
查看>>
技术人再不懂区块链,你就OUT了?漫画版
查看>>
快收藏!史上最全的 Linux Shell 文本处理工具集锦
查看>>
一小时爬千万数据的新浪微博爬虫
查看>>
简约而不简单的 Django 新手图文教程
查看>>
重磅!阿里首次全面公开展示AI布局(附布局图/成绩单/六产业详解)
查看>>
谷歌大脑2017技术研究总结 | Jeff Dean执笔(附论文 & 数据集)
查看>>
最新中国一二三四五线城市排名出炉!去这些城市买房准没错!
查看>>
BAT人工智能生态时局图:全面战争爆发前夜
查看>>
Python交互式数据分析报告框架~Dash介绍
查看>>
Chrome 浏览器 必知必会的小技巧
查看>>
Python奇技淫巧,看看你知道几个
查看>>