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

Array.prototype.push.apply(arr1, arr2)无法自动触发DOM更新

Array.prototype.push.apply(arr1, arr2)无法自动触发DOM更新

慕森卡 2018-12-11 13:15:42
使用多种方式对两个数组进行合并操作,为何有的不能自动触发DOM的更新?我查看了Vue的文档,知道由于js的限制,Vue无法检测某些对数组的操作:当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue当你修改数组的长度时,例如:vm.items.length = newLength但是我费解的是,为什么 this.list.push.apply(this.list, this.newList) 可以,而 Array.prototype.push.apply(this.list, this.newList) 却不可以。这两种调用方式有什么本质的不同吗?麻烦各位大神解答一下,非常感谢!
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

  1. 因为 this.list.push !== Array.prototype.pushthis.list.push指向的是vue重写过的方法

  2. 依据

https://img1.sycdn.imooc.com//5c4c2a5700015eb604470238.jpg

  1. 相关源码可参考楼上的


查看完整回答
反对 回复 2019-01-26
  • 1 回答
  • 0 关注
  • 866 浏览
慕课专栏
更多

添加回答

举报

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