ElementUI中组件使用clearable清空后值为null、undefined的解决方案
在element-puls的ui组件中,有很多组件都提供了clearable属性,可点击直接清空表单组件内容,比如说input输入框、select选择器、cascader级联选择器等。在实际项目开发时,很少有人注意到,当我们点击清空表单组件内容时,对应表单的内容有时并不会变为我们之前设置的默认值。
比如:el-input输入框在点击清空后,对应的属性值为空字符串,这基本是符合常理的;el-select选择器在点击清空后,对应的属性值为:undefined;el-cascader和el-date-picker在点击清空后,对应的属性值为null。
其中el-input和el-select两个组件提供了@clear的事件,可以在点击clearable清空时触发。
对应测试代码如下:
<h2>el-input</h2>
<el-input clearable v-model="val01" @clear="clearInput"/>
<el-button @click="console.log(val01)">打印val01</el-button>
js部分:
val01 = shallowRef('1');
因为,每个组件被清空后的值都不相同,在一定程度上是有一些混乱的,猜测ElementPlus官方以后可能会优化这一问题,但是目前这个问题,我们还需要自己解决。
上述通过clear事件去修正值的解决方法算一种,但个人感觉不是很好。其次,有很多人说使用watch监听去实现,这在一些无需提交数据至后端的场景下感觉是有用的,但是在需要将数据提交至后端的情况下,个人觉的,还是在提交数据之前,手动将这些为null或undefined的字段进行修正一次,如下:
data.pid = data.pid ?? 0
另外,在后端对存在clearable属性的字段,最好也做同样的处理。如:
$data['pid'] = $data['pid'] ?? 0;
这样基本上就可以保证不出错了。
不使用watch,是因为数据在提交之前,可能会经过多次修改,在这期间事实上是没必要去不停地修正的,虽然对性能和效率的影响很小。但是当一个表单中存在多个这样的组件时,难免会让代码有些混乱。因此,还是推荐在数据提交之前进行数据的修正。
- CSS选择器:nth-child()的灵活用法及常见场景示例
CSS选择器中的nth-child()相信大家都比较熟悉,nth-child()和nth-of-type()的区别是:nth-child()不区分类型。大家经常
- 为什么你的logo图模糊不清,移动端图片虚化的解决方案
在传统pc时代的时候,几乎99%的网站都在使用图片格式作为logo,而大部分网站都使用了png透明底的图片来做网站的logo。但是进入移动时代之后,这种习惯还是
- 响应式网站布局的优缺点分析
响应式网站,通俗的讲就是使用CSS媒体查询技术,写一套代码,可以在多个终端上使用。在此之前,前端切图工作者是需要分别针对电脑端、移动端和平板等常见设备专门去写一
- 切图和前端什么关系?为什么前端又被称为切图仔?
很多初从事前端切图这个行业的新人,大多都有一个疑问?为什么要把前端开发人员称为切图仔呢?提起这个问题,我们还要从前端切图行业的发展历程来说起,当然,这个问题对与
- 目前主流的前端框架有哪些?
基本上每种语言都有对应的一些快速框架用于提升开发人员的效率,所谓框架更像是工具箱或者脚手架,在开发时如果能很好的利用框架可以起到事半功倍的效果。简单形象的说,如
- 移动端background-attachment: fixed失效解决方法
在做web前端切图时,我们经常需要做背景图片不跟随内容滚动的效果,这个时候就需要使用到background-attachment: fixed 属性,这个属性及