如何避免React组件重复渲染的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计593个文字,预计阅读时间需要3分钟。
目录:React组件渲染两次,React总结之避免不必要的重复渲染 + 组件PureComponent + 使用插件seamless-immutable + 使用插件pure-render-decorator + React组件渲染两次 + 可能会有人问,为什么我的组件明明就是...
目录
- react组件渲染两次
- react总结之避免不必要的重复渲染
- 类组件PureComponent
- 使用插件seamless-immutable
- 使用插件pure-render-decorator
react组件渲染两次
可能会有人问,问什么我的组件明明是就让渲染一次,但是实际上却渲染两次呢?其实我也遇到了这个问题,那么下面我提出一种解决这个问题的一种方法。
如果你使用了react-router低于4.x版本中的hashHistory,那么问题就来了,出现这种情况的原因是因为router中进行了一次push和一次pop,所以出现两次渲染,
你只需要在shouldComponentUpdate()这个生命周期钩子中做一个判断就好了:
return (this.props.router.location.action === 'PUSH')
或者
return (this.props.router.location.action === 'POP');
只要二选一即可解决渲染两次的问题。
本文共计593个文字,预计阅读时间需要3分钟。
目录:React组件渲染两次,React总结之避免不必要的重复渲染 + 组件PureComponent + 使用插件seamless-immutable + 使用插件pure-render-decorator + React组件渲染两次 + 可能会有人问,为什么我的组件明明就是...
目录
- react组件渲染两次
- react总结之避免不必要的重复渲染
- 类组件PureComponent
- 使用插件seamless-immutable
- 使用插件pure-render-decorator
react组件渲染两次
可能会有人问,问什么我的组件明明是就让渲染一次,但是实际上却渲染两次呢?其实我也遇到了这个问题,那么下面我提出一种解决这个问题的一种方法。
如果你使用了react-router低于4.x版本中的hashHistory,那么问题就来了,出现这种情况的原因是因为router中进行了一次push和一次pop,所以出现两次渲染,
你只需要在shouldComponentUpdate()这个生命周期钩子中做一个判断就好了:
return (this.props.router.location.action === 'PUSH')
或者
return (this.props.router.location.action === 'POP');
只要二选一即可解决渲染两次的问题。

