使用 el-dialog 的最佳实践是什么?
直接用 v-if 去控制 el-dialog 的显示会不会更好?
这样就不用在每次关闭的时候去重置表单和相关数据了,也不用考虑回显数据的赋值时机。
props:{ visible: {
type: Boolean,
require: true,
default: false,
},
id: {
type: Number,
require: true,
default: 0,
},
defaultData:{
type: Object,
require: true,
default: ()=>({}),
}
}
watch:{
visible(newVal){
if(newVal && this.id){
this.$nextTick(this.initForm(this.defaultData));
}
}
},
methods:{
initForm(data){
this.form.id=data.id
this.form.name=data.name
this.form.age=data.age
this.form.gender=data.gender
},
closeDialog(update = false) {
if (!this.visible) return;
this.resetForm();
this.$emit("close", update);
},
resetForm() {
this.$refs.form.resetFields();
// resetFields() 只能重置表单数据,其他数据还需要手动重置
// 且由于要使用 resetFields(),表单数据回显也需要延后
this.isIndeterminate = false;
this.checkAllCity = false;
this.form.id = 0;
},
}
回答:
思路没问题,但是太频繁打开关闭的话没有性能问题就可行
回答:
这个按需使用就行
el-dialog里面有很多请求的,可以用v-if控制,打开弹框就去请求,不打开就不请求,但这也造成每次打开都会去请求
el-dialog里面有表单的,用v-if控制,每次打开都重新初始化,校验简单一些
回答:
之前也是这么写的,有两个问题:
1、组件每次都需要重新渲染,比较耗费性能
2、使用v-if,element打开弹窗时,原生的动画效果会失去
以上是 使用 el-dialog 的最佳实践是什么? 的全部内容, 来源链接: utcz.com/p/934347.html