为了账号安全,请及时绑定邮箱和手机立即绑定

vuex 快捷替换数组中的某项

vuex 快捷替换数组中的某项

holdtom 2018-09-04 12:24:34
目前有项需求,即是 一个用来渲染的保存的vuex的数组里面, 基础结构是这样的 [{'id':1, 'loadState': 'prepare'},......{'id':n, 'loadState': 'prepare'}]...我这边通过es6的数组的find方法 找到满足数组里面的id与 我从后台获得的id 相同的某项,把里面的loadState 改为 'loading', 再提交到原来的数组中去。问下如果是深复制的话,是否需要复制原来的整个数组 ,再把对应项拿出来修改,再mutation?如果这样提交会不会整个页面的数组都会有一闪而过的景象?或者有什么方法只改变其中的某项
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

你在纠结视图层引起的变化差别的时候,建议先看结果且看看diff算法原理,这样可以根据diff来优化你的代码。

查看完整回答
反对 回复 2018-09-09
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

1.你用Array.prototype.splice来改变你想改变的特定性是不会有问题的,页面也不会出现闪动。因为vue更新的时候是通过dom diff来做的,只会更新需要更新的部分
2.你这样用数组来保存,查找的时间复杂度是O(n),可以维护一个id和数组下标的对应关系,把时间复杂度降到O(1)

查看完整回答
反对 回复 2018-09-09
  • 2 回答
  • 0 关注
  • 1237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信