当前位置: 首页 > news >正文

关于虚拟DOM和Diff算法的理解及应用场景

1、vue虚拟dom

虚拟DOM不是真实的DOM,
而是一个JS对象。它的作用是判断DOM是**否改变、 哪些部分需要被重新渲染**。 vdom完全是用js去实现,和宿主浏览器没有任何联系,此外得益于js的执行速度,将原本需要在真实dom进行的创建节点,删除节点,添加节点等一系列复杂的dom操作全部放到vdom中进行,这样就通过操作vdom来提高直接操作的dom的效率和性能。

2、vue diff 算法

#(1)为什么有diff算法:

diff算法用来修改一小段dom,不会引起dom树的重绘

#(2)diff算法实现原理:

diff算法将virtual dom的某个节点数据改变后生成的新的vnode与旧的节点比较,并替换为新的node
diff的过程就是调用名为patch的函数,比较新旧节点,一边比较一边给真实的DOM打补丁。

##(3)过程:

当数据发生改变时,set方法会让调用Dep.notify通知所有订阅者Watcher,
订阅者就会调用patch给真实的DOM打补丁,更新相应的视图。

相关文章:

  • python selenium webdriver入门基本操作
  • 对ChemDraw Prime 16.0你了解多少
  • vue项目打包上线的流程
  • css-css权威指南学习笔记1
  • 前端常见面试题总结
  • 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
  • 解决“chrome提示adobe flash player 已经过期”的小问题
  • Java 通过JDBC连接Mysql数据库
  • 跟我一起写 Makefile(十三)
  • 无向图的结合点
  • CSDN上的文章好像是hBifts的嘛。怎么连作者名字都不提一下。过份!
  • Yii2.0 API实例
  • 关于Whidbey的东西
  • AFURLRequestSerialization
  • top命令简介
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • canvas 高仿 Apple Watch 表盘
  • git 常用命令
  • Git初体验
  • javascript 哈希表
  • log4j2输出到kafka
  • springMvc学习笔记(2)
  • Vue 动态创建 component
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 高程读书笔记 第六章 面向对象程序设计
  • 工程优化暨babel升级小记
  • 关于Flux,Vuex,Redux的思考
  • 检测对象或数组
  • 深度学习中的信息论知识详解
  • ​低代码平台的核心价值与优势
  • ​学习一下,什么是预包装食品?​
  • "无招胜有招"nbsp;史上最全的互…
  • # Java NIO(一)FileChannel
  • ###项目技术发展史
  • #define用法
  • #图像处理
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (¥1011)-(一千零一拾一元整)输出
  • (02)Hive SQL编译成MapReduce任务的过程
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (42)STM32——LCD显示屏实验笔记
  • (function(){})()的分步解析
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二十四)Flask之flask-session组件
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (五)关系数据库标准语言SQL
  • (已解决)什么是vue导航守卫
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET CLR Hosting 简介
  • .NET 指南:抽象化实现的基类
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试