react 生命周期

React组件生命周期可以分为三个主要阶段:挂载阶段、更新阶段和卸载阶段。在每个阶段,React提供了一些生命周期方法,用于在组件不同的生命周期时刻执行特定的操作。下面是React组件的生命周期方法及其说明注释:
挂载阶段:

1.constructor(props):构造函数,在组件实例创建时调用。通常用于初始化状态和绑定方法。

   constructor(props) {
     super(props);
     // 初始化状态
     this.state = {
       // ...
     };
   }


2.static getDerivedStateFromProps(props, state):静态方法,在组件实例创建和接收到新的props时调用。常用于根据props更新state(不建议过度使用)。

   static getDerivedStateFromProps(props, state) {
     // 根据props更新state
     if (props.someProp !== state.someState) {
       return {
         someState: props.someProp
       };
     }
     return null;
   }


3.render():必选的方法,在组件实例创建和更新时都会调用。负责渲染组件的UI。

   render() {
     return (
       // JSX代码
     );
   }


4.componentDidMount():组件挂载到DOM后调用。常用于进行异步操作,如数据获取、订阅事件等。

   componentDidMount() {
     // 执行异步操作
     fetchData()
       .then(data => {
         this.setState({ data });
       })
       .catch(error => {
         console.error(error);
       });
   }

更新阶段:

5.static getDerivedStateFromProps(props, state):同上。
6.shouldComponentUpdate(nextProps, nextState):判断是否需要更新组件,默认返回true。可用于性能优化,避免不必要的重新渲染。

   shouldComponentUpdate(nextProps, nextState) {
     // 根据条件判断是否需要更新组件
     if (this.props.someProp !== nextProps.someProp) {
       return true;
     }
     return false;
   }


7.render():同上。
8.componentDidUpdate(prevProps, prevState):组件更新完成后调用。通常用于进行更新后的操作,如数据的更新、DOM的操作等。

  componentDidUpdate(prevProps, prevState) {
     // 进行更新后的操作
     if (prevProps.someProp !== this.props.someProp) {
       // 执行相应的操作
     }
   }

卸载阶段:

9.componentWillUnmount():组件卸载和销毁之前调用。可用于清理定时器、取消订阅等资源的释放。

  componentDidUpdate(prevProps, prevState) {
     // 进行更新后的操作
     if (prevProps.someProp !== this.props.someProp) {
       // 执行相应的操作
     }
   }

以上是React组件的常见生命周期方法及其作用,在开发过程中可以根据需要选择合适的生命周期方法来处理组件的不同阶段逻辑。需要注意的是,从React 17开始,某些生命周期方法已被标记为过时,并且可能不会得到支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值