【Vue 开发实战】基础篇 # 7:理解虚拟DOM及key属性的作用

简介: 【Vue 开发实战】基础篇 # 7:理解虚拟DOM及key属性的作用

说明

【Vue 开发实战】学习笔记。



回顾 jquery

事件操作 dom 会导致越来越乱

e805a4d482e2440f994b4f69e00262ce.png


再看 vue

引入 state 层,事件操作数据,vue 底层映射到 dom 上。


f535894f39e54ddb8ede5bbf4c125e03.png


virtual dom

数据变化,怎么尽可能的减少 dom 更新,就提出了虚拟 dom,它是 json 对象保留了 dom 树形结构信息

662de0dadf114661b21a4388edaa3017.png


virtual dom diff

dom 比对,找出差异


8a77db70097f4f50b7f91f93d00e1179.png

场景1:移动

88d02409b87f4650a193075c68265d2a.png


映射到 dom,就是下面的结构

a5b2479e970d4c4db3183529076703ef.png


场景2:删除新建

72010cc41e2c4903870ab481a74eb517.png



场景3:删除新建

fa0c6cc9a6c24b539c944adc3234c8a6.png



场景4:更新删除新建(无key)


abdd80abab7c409f806613916274f09c.png

对应的dom

30d4688d5e0042948d5f72d8876dff7d.png


场景5:移动(有key)

加了 key,就通过 key 去判断,移动即可,不用删除新建


9deab076fecd4e91966d681856ec60d6.png



场景6:插入(有key)

有了key,B1、B2、B3 可以复用,B4 直接插入即可

99f40183b8f74564b14a0a5e6b44efcf.png







目录
相关文章
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
957 2
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
856 137
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
1303 1
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
1054 1
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
755 0
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。

热门文章

最新文章