首页 > 编程语言 >3 、Vue 【进阶】- diff 算法(2), 【包含完整 patchNode】

3 、Vue 【进阶】- diff 算法(2), 【包含完整 patchNode】

时间:2022-11-16 20:00:44浏览次数:38  
标签:Vue 进阶 dom patchNode 虚拟 diff createElement class

Vue 【进阶】- diff 算法(2), 【包含完整 patchNode】

前言

上一讲https://www.cnblogs.com/caijinghong/p/16879388.htmldiff 算法讲了:

  1. 虚拟dom
  2. 文件位置
  3. seter 触发后的过程
  4. 实现 render createElment 生成虚拟dom, 和转换成真实 dom
  5. 实现了简单的 diff ,实现了 文本、标签、属性的更换。
  6. 节点的比较还未实现, 也就是源码中的 patchNode 的方法,本次将复习 diff ,并实现该方法

本次学习流程

diff 简介

diff 算法可以将 两个虚拟dom 进行比较,他是一个精细化对比,实现dom的最小量更新

虚拟 dom

虚拟 dom 的 js 形式

const vDom = createElement(
  'ul', 
  {class:'list',style:'color:#efef;width:500px;height:300px;background-color:brown;'}, 
  [
    createElement('li', { class:'item', 'data-index': 0 }, [
      createElement('p', { class: 'text' }, ['第一个列表项'])
    ]),
    createElement('li', { class:'item', 'data-index': 1 }, [
      createElement('p', { class: 'text' }, [
        createElement('span', { class: 'title' }, ['第2个列表项'])
      ])
    ]),
    createElement('li', { class:'item', 'data-index': 2 }, [
      createElement('p', { class: 'text' }, ['第3个列表项'])
    ])
  ]
)

虚拟dom

真实dom

标签:Vue,进阶,dom,patchNode,虚拟,diff,createElement,class
From: https://www.cnblogs.com/caijinghong/p/16897286.html

相关文章

  • 12-Go语言进阶-02
    并发编程并发、并行并发:同一时间段,两个程序轮流执行。并行:两个程序同时执行,需要有多核CPU的支持才能实现。并行不一定就比并发速度快,因为线程或进程之间的通信开销很......
  • 小程序开发:用原生还是选框架(wepy/mpvue/uni-app/taro)?
    小程序开发:用原生还是选框架(wepy/mpvue/uni-app/taro)?自2017-1-9微信小程序诞生以来,历经2年多的迭代升级,已有数百万小程序上线,成为继Web、iOS、Android之后,第四大主流开发技......
  • 某咖啡 app 加密参数分析进阶版
    本文由简悦SimpRead转码,原文地址mp.weixin.qq.com仅供学习研究。请勿用于非法用途,本人将不承担任何法律责任。前言app某某咖啡v4.4.0mitmproxy抓包......
  • 尚硅谷vue课程之数据绑定
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • VUE对象数组,和普通数组的常用方法
    在VUE中也可以使用find,findIndex,map等方法对数组对象进行查询,赋值等操作,记录一下定义数组对象 vararrobj=[{"id":1,"keyword":"羽绒服","times":1000},{"id":2,"k......
  • 记录vue-pdf文件流预览出现空白的问题
    因为工作需要引用pdf插件,于是找到了vue-pdf,具体用法并不难,我先贴上代码:先引入组件importpdffrom'vue-pdf'布局如下:<pdf:src="pdf......
  • vue使用qrcodejs2进行二维码显示以及下载
    1、安装qrcodejs2npminstallqrcodejs2/yarnaddqrcodejs22、引入qrcodejs2importQRCodejsfrom'qrcodejs2';3、使用html:<divref="locatorQRCodeRef"></......
  • 解决Vue中使用history路由模式出现404的问题
    背景vue中默认的路由模式是hash,会出现烦人的符号#,如http://127.0.0.1/#/。改为history模式可以解决这个问题,但是有一个坑是:强刷新、回退等操作会出现404。Vue改用History......
  • vue入门
    Vue入门 一、什么是Vue#Vue(读音/vjuː/)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注......
  • 按需引入Ant Design Vue
     配置{"plugins":[["import",{"libraryName":"ant-design-vue","libraryDirectory":"es","style":"css"}]//`style:true`会加载less文件]......