ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue domdiff 乱序排序

2021-03-15 11:32:52  阅读:188  来源: 互联网

标签:NACME vue 相同 null 乱序 移动 节点 domdiff 指针


乱序前提: 就是头头,尾尾,头尾,尾头 都不相同

事例:

ABCDF   老节点
NACME   新节点

1.头和头比

N移动到A前面 ,如果不一样那么将新节点头节点插入到老节点头节点前面,新节点头指针向后移动
结果:
NABCDF  头节点位置A (没动过)
NACME    头节点位置A   (从N 移动到 A)

2.头和头继续比较

新老节点头部节点相同,新老节点头部指针同时向后移动
结果:
NABCDF    头节点位置B(从A 移动到 B)
NACME      头节点位置C(从A 移动到 C)

3.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找到与新节点相同的C,将C节点移动到老节点头指针的前面,C位置用null代替,新节点头指针向后移动
结果:
NACB null DF     头节点位置B(没移动过)
NACME               头节点位置C(从C 移动到 M)

注意:下面的比较略过null 因为比对也没结果 遇到null 指针直接跳过

4.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找不到与新节点相同的M,将M节点插入到老节点头指针的前面,新节点头指针向后移动
结果:
NACMB null DF     头节点位置B(没移动过)
NACME       头节点位置C(从M 移动到 E)

5.继续比较

新老节点头部不相同 头尾不相同 尾尾 尾头都不相同,遍历老节点找不到与新节点相同的E,将E节点插入到老节点头指针的前面
结果:
NACMEB null DF     头节点位置B(没移动过)
NACME       头节点位置C(E节点最后了不需要移动)

新节点是最后一项 直接删除老节点头指针及其后面所有

标签:NACME,vue,相同,null,乱序,移动,节点,domdiff,指针
来源: https://blog.csdn.net/qq_39213537/article/details/114012964

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有