React生命周期

739 阅读1分钟

钩子简述

shouldCompenentUpdate

shouldCompenentUpdate(nextProps,nextState){} 是否需要更新组件

可以手动判断是否要进行组件更新,可根据场景灵活设置返回值,宜避免不必要的更新

可以在类组件定义时使用extends PureComponent

PureComponent会在 render 之前对比新 state 和旧 state 的每一个 key,以及新 props 和旧 props 的每一个 key。如果所有 key 的值全都一样,就不会 render;如果有任何一个 key 的值不同,就会 render。

render

  • 用来展示视图
  • 只能有一个根元素
  • 如果想要有一个以上的根元素,可以用<React.Fragment>包起来,简写为<>

componentDidMount

  • 在元素插入页面后执行代码,依赖DOM,它没有参数
  • 在这里发起加载数据的AJAX请求
  • 首次渲染会执行此钩子

componentDidUpdate

  • 在视图更新后执行代码
  • 可以发起更新数据的AJAX请求
  • 首次渲染不会执行此钩子

componentWillUnmount

  • 组件将要被移除页面然后被销毁时执行的代码
  • unmount过的代码不会再次mount
  • 应该取消那些长期有效的请求(AJAX,timer等)