key
值可以看作 React
留给开发者介入 diff
流程的一个楔子,所以它不应该自动生成,应该交给开发者去管理。
key
值最管用的应该是子组件顺序发生调换之后,开发者用 key
来告诉 React
:这个组件只是被移动了个位置,你把原来的同 key
对象改改就行,不用从头造一个 VirtualDOM
。
而如果让 React
自己去生成 key
,它势必要先调用生成 key
的方法才能继续 diff
,只在流程上多了一步,增益不会很大,甚至会起到反作用,不如不用 key
。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…