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