美文网首页
2020-04-11

2020-04-11

作者: 偏灬爱 | 来源:发表于2020-04-11 21:56 被阅读0次

vue diff算法分析

diff存在的意义

1.对服务端和浏览器端统一一层虚拟dom,这样无论是服务器预编译runTime还是
在浏览器运行都会形成统一,各部分之间相互隔离。例如

const vnode={
    tagName:'div',
    attrs:{
         'data-name':'test'
     },
     context:'${Vue}',
     data:'a.b',
}

2.性能优化。性能优化的来源渲染和预编译的ast 语法转换。在服务器dev环境时,通过编译模板形成模板渲染函数,渲染时只需要调用对应的渲染函数,减少渲染,同时形成函数缓存,不用每次计算。

<div>{{a*b+2*c}}</div>
const render = (a,b,v) =>{
                 return a*b+2*c;
           }

vue diff算法核心 比较是old 和新的 虚拟dom 对象层次递归比较的,

1.相识性

const sameVnode=>(a, b) {
        return (
            // key来源于v-for或者自定的:key属性
            a.key === b.key &&
            a.tag === b.tag &&
            a.isComment === b.isComment &&
            isDef(a.data) === isDef(b.data) &&
            sameInputType(a, b)
        )
    }

相似就不更新,不相似就update

2.比较过程

1. old 序列为 ABCD 新序列为 ABD

          直接删除C节点

2. old 序列为 BACD 新序列为 ABD

           vue保留B react干掉B

相关文章

  • 2020-04-12

    2020-04-11 菜菜_d868 字数 531 · 阅读 1 2020-04-11 23:26 姓名:邢彩颜 ...

  • 轻量级审批流设计

    基础设置Screen Shot 2020-04-11 at 11.54.52 AM.png 表单设计表单以json...

  • 工作流-钉钉审批创建流程

    钉钉官方工作流 基础设置Screen Shot 2020-04-11 at 11.54.52 AM.png 表单设...

  • Drupal 子主题.theme文件卸载问题

    debug log 2020-04-11 Drupal 子主题.theme文件卸载问题 新建子主题时忘记删除里面自...

  • 晚间日记3

    文|董大壳 今天2020-04-11 起床:07:00 就寝:24:00 天气:大风 心情:不错呀 任务清单 今天...

  • 《贫穷的本质》2

    Day26 2020-04-11 《贫穷的本质》第6-10章 【字数】487 读着《贫穷的本质》,很多个人思维和经...

  • 汽车维修资料的搜集与利用

    汽车维修信息精选2020-04-11 07:29 一、汽车维修资料的搜集途径 途径一:利用互联网查询资料 2015...

  • 坚持打卡2020-04-11

    2020-04-11周六 学习-2-打卡-redis 运动-2-打卡-20min室内运动 2020-04-12周日

  • 2020-04-11

    2020-04-11 成长日志第298天 家名:温暖有爱之家 家规:真诚待人不自欺,学会看见懂得感恩,正面如是的表...

  • 2020-04-13

    2020-04-11 成长日志第298天 家名:温暖有爱之家 家规:真诚待人不自欺,学会看见懂得感恩,正面如是的表...

网友评论

      本文标题:2020-04-11

      本文链接:https://www.haomeiwen.com/subject/opmpmhtx.html