1. this._eventsCount = { }    这是为了避免不必要的深度遍历:

 在有广播事件到来时,如果当前 vm 的 _eventsCount 为 0

 则不必向其子 vm 继续传播该事件。 

 

2.

数据更新的diff机制


视图更新效率的焦点问题: 大列表的更新 和 深层数据更新

而大列表较为常见


repeat.js


首先diff(data, oldVms) 大概是先比较 新旧两个列表 的vm的数据状态, 然后

差量更新DOM


步骤:

1.遍历 新列表里的 每一项, 如果 该项的vm 之前就存在, 则标记为 _reused

如果不存在对应的vm, 则创建一个新的

(这个vm 个人理解是每个列表每一行数据都有个独立的vm , 存在意思是新列表数据也和vm的数据一样 )


2. 遍历旧列表的每一项, 如果这一项对应对的vm没有被标记为 _reused,

说明新列表不需要利用这个vm, 就马上销毁它


3. 根据新列表item顺序, 整理 新的vm在视图 和 _reused的vm 顺序,

列表更新完成