-
虚拟DOM
Vue的模板标签,被Vue解析成一套虚拟DOM结构,Vue内部将虚拟DOM解析成真实DOM,真实DOM属性过多,遍历耗时(大概300来个属性)
-
虚拟DOM diff算法
- 用来比较新旧虚拟的
- 同级比较
- 1.根标签改变,删除重新建立整个DOM树
- 2.根元素未变,属性改变
- DOM复用,只更新新属性
- 3.根据标签和属性都未变,子标签改变
- a. key没有变
- item数据没变, 直接使用原来的真实DOM
- item数据变了, 对原来的真实DOM进行数据更新
- b. key变了
- 销毁原来的真实DOM, 根据item数据创建新的真实DOM显示(即使item数据没有变)
- a. key没有变
-
key为index的问题
- 添加/删除/排序 => 产生没有必要的真实DOM更新 ==> 界面效果没问题, 但效率低
- 如果item界面还有输入框 => 产生错误的真实DOM更新 ==> 界面有问题
注意: 如果不存在添加/删除/排序操作, 用index没有问题
-
解决:
使用item数据的标识数据作为key, 比如id属性值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人