zoukankan      html  css  js  c++  java
  • Vue.js 源码学习笔记

     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 顺序,

    列表更新完成

  • 相关阅读:
    逆变和协变
    委托的泛型版本
    委托的协变和逆变
    IIS8应用池重启脚本
    JS获取url参数及url编码、解码
    Jmeter压测Thrift服务接口
    浏览器插件及好用的小工具
    Jmeter入门实例
    BugBash活动分享
    如何作缺陷分析
  • 原文地址:https://www.cnblogs.com/dhsz/p/6389270.html
Copyright © 2011-2022 走看看