首先vue和react都是通过diff算法来对比新旧节点,从而来更新节点。
当不带Key的时候,采用的是遍历的方式来对比新旧节点,从而达到更新节点的效果。
带key的时候使用的是map映射来更新节点。
在模板简单的时候使用就地复用(就是不使用key)效率会更高。
所以使用key并不意味着一定可以提高diff算法的效率。
key的作用主要是为每个节点设置一个唯一的标识,可以更快,更准确的拿到节点。
在一些情况下,还可以避免就地复用带来的副作用(表单数据错位)
首先vue和react都是通过diff算法来对比新旧节点,从而来更新节点。
当不带Key的时候,采用的是遍历的方式来对比新旧节点,从而达到更新节点的效果。
带key的时候使用的是map映射来更新节点。
在模板简单的时候使用就地复用(就是不使用key)效率会更高。
所以使用key并不意味着一定可以提高diff算法的效率。
key的作用主要是为每个节点设置一个唯一的标识,可以更快,更准确的拿到节点。
在一些情况下,还可以避免就地复用带来的副作用(表单数据错位)