React组件渲染两次,是组件生命周期钩子设置不当吗?

2026-04-01 12:230阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

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

React组件渲染两次,是组件生命周期钩子设置不当吗?

目录:React组件渲染两次,总结之避免不必要的重复渲染

1. React组件渲染两次的原因

2.使用PureComponent

3.使用seamless-immutable插件

4.使用pure-render-decorator插件

5.组件渲染两次的潜在问题

目录
  • 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');

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

阅读全文

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

React组件渲染两次,是组件生命周期钩子设置不当吗?

目录:React组件渲染两次,总结之避免不必要的重复渲染

1. React组件渲染两次的原因

2.使用PureComponent

3.使用seamless-immutable插件

4.使用pure-render-decorator插件

5.组件渲染两次的潜在问题

目录
  • 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');

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

阅读全文