面试官问:react中得key干嘛的

怎么回答才能折服面试官
vue的可以和react的key是一个道理吗

阅读 1.8k
1 个回答

同一个道理,都是用于虚拟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)
            )
        )
    )
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题