同一个道理,都是用于虚拟dom的diff算法中,用于判断前后两个虚拟dom是否相同,是关键判断条件,但不是唯一判断条件,可以大大优化diff算法的速度。 网上讲述key的很多,也很详尽 vue中的key值 react中的key值 下面再来一段vue中使用key值判断节点是否相同的代码 //查询是否为相同节点 function sameVnode(a, b) { return( //判断key值是否相等,可都为undefuned a.key === b.key && ( ( a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data) && sameInputType(a, b) ) || ( isTrue(a.isAsyncPlaceholder) && a.asyncFactory === b.asyncFactory && isUndef(b.asyncFactory.error) ) ) ) }
同一个道理,都是用于虚拟dom的diff算法中,用于判断前后两个虚拟dom是否相同,是关键判断条件,但不是唯一判断条件,可以大大优化diff算法的速度。
网上讲述key的很多,也很详尽
vue中的key值
react中的key值
下面再来一段vue中使用key值判断节点是否相同的代码