这是整个 React 中一个非常重要的性能考虑因素(不仅仅是react-router)。
默认设计下,React 会针对 props 或 state 的任何更改重新渲染完整的 DOM 树。
以下是React documentation for Advanced Performance 建议的技术摘要。
使用生产版本
注意:自动处理组件的正确性。没什么好担心的。
这应该相当简单。以下webpack.config.js 插件部分 sn-p 应确保 NODE_ENV 变量到达 React 源代码。
...
plugins: [
new CommonsChunkPlugin('bundle.js'),
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(process.env.NODE_ENV)
}
})
]
...
现在只需确保NODE_ENV=production webpack -p。
这可确保跳过所有这些警告/错误和propTypes 检查。
避免协调 DOM
警告:您必须处理props 和state 的所有可能的条件矩阵(如果需要),以确保您不会弄乱渲染的正确性。
这是必须实现的回调签名。每当任何 state 或 prop 值更改时都会调用此方法。
shouldComponentUpdate: function(nextProps, nextState) {
// @TODO your logic here
// return true to update, false otherwise
return true;
}
请记住,React 会经常调用这个函数,所以
实施必须很快。