vue中唯一key

Vue中的唯一key

Vue 中 key 的作用是:key 是为 Vue 中 vnode 的唯一标记,通过这个 key,我们的 diff 操作可以更准确、更快速。利用唯一key来获取对应节点,比遍历更快。

Vue中的virtual DOM

virtual DOM是将真实的DOM的数据抽取出来,以对象的形式模拟树形结构,最终经过一系列操作将其映射到真正的环境中。

操作真实DOM元素开销很大,容易引起整个DOM树的重绘和回流,在Vue的底层实现上,Vue将模板编译成虚拟DOM渲染函数,再转换成虚拟DOM,虚拟DOM节点和原真实的DOM节点进行比较(比较只会在同级进行, 不会跨层级比较),只需要将二者不一样的地方渲染上去就行了,实现了只更新我们修改的那一小块dom而不要更新整个dom。

diff算法

diff算法

Vue的diff算法是基于snabbdom改造过来的,Vue中diff算法过程就是调用名为patch函数仅在同级的vnode间做diff,递归地进行同级vnode的diff,最终实现整个DOM树的更新

diff 算法包括几个步骤:

  • 用 JavaScript 对象结构表示 DOM 树的结构;然后用这个树构建一个真正的 DOM 树,插到文档当中
  • 当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异
    新的树和旧的树进行比较,记录两棵树差异
  • 把所记录的差异应用到所构建的真正的DOM树上,视图就更新了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值