vxe-table在当前表格中添加新的一行数据 重新获取列表的方法

1. 问题 

vxe-table在当前表格中添加新的一行数据后 ,需要自动保存,也需要年月份有连续性,要及时对输入的数据进行前后校验,避免交叉、不连续等问题。如果调用接口来重新获取列表,则会出现数据来不及保存,而又重新获取列表,导致添加的数据不完整,比如 输入年月202210,会出现 得到的数据是20或者20220等等这种bug

2. key的作用及原理 

vue2中当我们渲染数据的时候,要求我们加key值,用来作为数据的唯一标识,key中存在一种diff算法,是为了减少dom操作,当我们数据发生变化时,会根据key值进行操作 当key值变化时,dom进行重新渲染。就是将新的虚拟DOM与重新渲染的虚拟DOM进行一个对比 ,vue中的key属性就是按照这个key的值来一一对比。如果匹配到一样的node节点会便不会重新使用新的虚拟DOM进行渲染,而是采用原有虚拟DOM结构。这是key的作用和原理,其实可以利用这个点 去解决上述问题。

3. 解决 

将key绑定一个变量dateTime,在vxe-table中的 编辑完此行之后使用的@edit-closed="editClosedEvent"事件中,dateTime 获取时间。每当时间发生变化时,key也就变化了,就会去重新渲染table表格,这样就解决了 年月份能够及时排序、校验并能够准确的呈现在页面。

4. 上图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值