Vue怎样检测数组变革

源代码 2024-9-21 12:18:26 58 0 来自 中国
原理分析:
在数据初始化时调用initData方法,然后通过new Observer对数据举行监测,然后对数据举行判断,如果是数组而且支持原型链,就会实行protoAugment让目的原型链指向arrayMethods,arrayMethods用来改写数组的原型方法。内部会接纳函数挟制的方式,当用户调用这些方法(push,pop,shift,unshift,sort,splice,reverse)之后,还会调用原数组的方法举行更新数组。拿到原数组的方法,然后重新界说这些方法。
用户调方法时走的是重写的mutator函数,这个函数照旧会调用数组原有的方法,重写的mutator函数中会调用原生的方法,对新增数组的方法push,unshift,splice可以帮我们更新数组中的新增一项,对插入的数据利用observeArray再次举行监测,末了通过dep.notify关照视图更新。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-24 20:20, Processed in 0.153716 second(s), 33 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表