react 为什么不自动生成 key?

除了在前端生成唯一key所造成的消耗外,是否有其他影响?

阅读 2.8k
2 个回答

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

假设可以自动生成key, 那么生成规则是什么? index?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题