编程语言
首页 > 编程语言> > Vue源码:虚拟DOM和diff算法

Vue源码:虚拟DOM和diff算法

作者:互联网

简单介绍一下虚拟DOM和diff算法

需求

在这里插入图片描述

方法一:拆了重建

在这里插入图片描述

方法二:diff
在这里插入图片描述

在这里插入图片描述

主要内容

在这里插入图片描述

snabbdom简介和测试环境搭建

snabbdom简介

安装snabbdom

snabbdom测试环境搭建

跑通官方git首页的demo程序

虚拟DOM和h函数

在这里插入图片描述

虚拟DOM类似于mustache中的token

diff是发生在虚拟DOM上的

在这里插入图片描述

课程不研究DOM如何变成虚拟DOM

在这里插入图片描述

研究内容

虚拟函数如何被渲染函数(h函数)产生?

h函数用来产生虚拟节点

h函数用来产生虚拟节点(vnode)

比如这样会调用h函数

在这里插入图片描述

将得到这样的虚拟节点

在这里插入图片描述

{
    "sel": "a",
    "data": {
        props: {
            href: "http://www.atguigu.com"
        }
    },
    "text": "尚硅谷"
}

它表示的真正DOM节点

在这里插入图片描述

一个虚拟节点都有哪些属性

{
    children: undefined,	// 子元素
    data: {},	// 属性、样式
    elm: undefined,	// 对应真正DOM节点,如果为undefined,表示该节点还未上树
    key: undefined,	// 节点唯一标识
    sel: "div",	// 选择器
    text: "我是一个盒子"	// 文字
}

h函数可以嵌套使用,从而得到虚拟DOM树(

标签:Vue,DOM,elm,children,oldVnode,key,节点,vnode,源码
来源: https://blog.csdn.net/KaiSarH/article/details/118518774