如何避免React组件重复渲染的问题?

更新于
2026-09-25 14:20:02
18阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计593个文字,预计阅读时间需要3分钟。

如何避免React组件重复渲染的问题?

目录: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组件渲染两次,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');

只要二选一即可解决渲染两次的问题。

阅读全文