Vue.js中数组变动的检测详解
前言最近在尝试用Vue.js重构公司的现有业务代码,组件化的设计思路和MVVM的思想让我深深沉迷于其中。但是是踩到了不少坑,就比如这篇文章介绍的数组绑定后的更新检测。 相信大家都知道 接下来,我们来看看如何实现数组变动检测。例子:// 键路径
vm.$watch('a',function () { // 做点什么 }) 思路在 js 中, 很容易实现 hook, 比如: 我们只要实现自定义的函数,就能观测到数组变动。 Vue.js 中使用 var b = Object.create(a.prototype); // b 继承了a的原型
继承array.js定义如下: ok, 我们定义完了 array.js,并作为模块导出,修改 // 如果是数组就更改其原型指向
if (Array.isArray(value)) { value.proto = arrayMethods this.observeArray(value) } else { this.walk(value) } } // 观测数据元素
结果:vm.$watch('b',(val) => {
console.log('------我看到你们了-----') }) vm.b.push({c: 'c'}) // 结果: 总结至此,我们已经实现对数组变动的检测。主要使用了Object.create()函数。希望这篇文章的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |