- 在循环中为元素选择 key 时,应使用一个标识符,该标识符对于相同的列表元素总是相同的,而不是数组索引
- 在定义组件时,请在文件/模块的顶层定义它,而不是嵌套在另一个组件或函数内部
- 在决定存储什么状态时,应存储可以用来计算你所需的最小表示
- 在考虑是否使用
userMemo
、useCallback
、或者React.memo
缓存时,应在观察到性能问题后再进行缓存 - 在将共享代码提取为函数时,只有在它调用其他钩子时才将其命名为钩子
- 当你需要根据属性变化调整状态时,请直接在渲染期间直接调整状态,而不是在效果中设置
- 当你需要获取数据时,建议使用库而不是
useEffect
- 当你需要对某个事件发生做出反应时,应在事件处理函数中编写代码,而不是在
useEffect
中 - 当 useEffect 依赖项导致你不希望的重新渲染(包括无限循环)时,不要仅仅从数组中移除依赖项:也要从效果函数中移除依赖项
详情查看:The nine best recommendations in the new React docs
其他:React 之道 - 软件设计、架构和最佳实践