1。在编写反应/真空项目时,为什么要在组件中写键,它的功能是什么?
key的功能是在执行diff算法时更快地找到相应的节点并提高diff速度。
vue和react都使用diff算法来比较新旧虚拟节点,从而更新节点在vue的差分函数中您可以先了解差分算法。
在交叉比较中,当新节点与旧节点首尾交叉比较没有结果时,旧节点数组中的键将根据新节点的键进行比较,从而找到对应的旧节点(这里对应的键= >;索引地图)如果没有找到,它将被视为一个新节点。如果没有关键字,那么将使用遍历搜索方法来找到对应的旧节点。一个是地图映射,另一个是遍历搜索相比之下地图绘制更快
vue的源代码如下:
// vue项目src/core/vdom/patch . js-488 line//OldCh是一个旧的虚拟节点数组。if(isUndef(oldKeyToIdx))oldKeyToIdx = createKeyToOldIdx(oldCh,oldStartIdx,oldEndIdx)idxinoold = isDef(newstartvnode . key)?OldKeyToIdx4-双向握手