NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
React 开发使用react-router 4.2.2 版本(react-router低于4.x版本中的hashHistory 会出现此问题),发现页面刷新之后会渲染两次,浪费资源、性能 那么问题就来了,出现这种情况的原因是因为router中进行了一次push和一次pop,所以出现两次渲染,你只需要在()这个生命周期钩子中做一个判断就好了: ``` shouldComponentUpdate(){   return (this.props.router.location.action === 'PUSH') } ``` 或者 ``` shouldComponentUpdate(){   return (this.props.router.location.action === 'POP') } ``` 只要二选一即可解决渲染两次的问题。 注意,如果有以下写法,导致状态改变之后,返回新的组件的话,也会导致子组件的多次渲染: ``` class index extends Component { render() { if (isTrue) { return <div>组件一</div> } return ( <div> 组件二 </div> ); } } ```