Vue组件的响应式实现(基于动态数据传输)
发布时间
阅读量:
阅读量
数组自有的遍历
首先的一点,就是要先区分数组的遍历,和之前的 walk 遍历对象,有所区分。
我们新增一个 observeArray 专门用来遍历数组。
可能会有疑问:为什么数组的 observeArray 循环使用 observe 而 walk 则采用 defineReactive?这是因为数组中的数据可能并非对象类型,因此需要采用 observe 方法来处理相关操作。
function observeArray(list) {
for(let i=0,l=list.length;i<l;i++){
observe(list[i])
}
}
然后在 Observer 构造函数出进行类型判断
class Observer{
constructor(obj){
def(obj,'__ob__',this,false)
if (Array.isArray(obj)){
observeArray(obj)
}else{
this.walk(obj);
}
}
// ...
}
全部评论 (0)
还没有任何评论哟~
