react学习-生命周期

import React, { Component } from "react";

export class button extends Component {
  constructor(props) {
    super(props);
    this.state = { liked: false, text: "改变前" };
    console.group("%c 1-初始化阶段", "color:red", props, this.state);
  }
  componentWillMount() {
    // 逐渐被淘汰,需要使用UNSAFE,不加就会出现警告,这个生命周期DOM未渲染
    // 只会在组件加载前调用一次,在render之前调用
    // 我们可以在这个方法里面调用setState改变状态,并且不会导致额外调用一次render
    console.group("%c 2-组件加载前", "color:green");
  }
  componentDidMount() {
    // 只会在加载之后调用一次,在render之后调用,从这个开始可以通过ReactDOM.findDOM获取到DOM节点
    console.group("%c 4-组件加载后", "color:black");
  }

  //数据状态改变就会执行5-6-3-7
  shouldComponentUpdate() {
    console.group("%c 5-组件是否需要更新", "color:pink");
    return true;
    // true代表组件需要更新,false代表组件不需要更新
    // 其实真是业务情况在开发过程中不会使用该钩子函数,除非有特殊的业务场景,我们才需要在这里进行处理
  }
  componentWillUpdate(nextProps, nextState) {
    console.group("%c 6-数据将要更新", "color:#8552a1");
  }
  componentDidUpdate(nextProps, nextState) {
    console.group("%c 7-数据已经更新", "color:#7fb801");
  }
  componentWillUnmount() {
    // 完成组件的卸载和数据的销毁,清除组件所有的定时器,移除所有的事件监听
    console.group("%c 8-组件销毁", "color:blue");
  }

  handleChange = () => {
    this.setState({
      text: "改变后",
    });
  };
  render() {
    console.group("%c 3-组件加载或者组件更新", "color:blue");
    return (
      <div>
        <p>生命周期测试</p>
        <button onClick={this.handleChange}>测试改变生命周期</button>
        {this.state.text}
      </div>
    );
  }
}

export default button;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
React生命周期流程图可以分为两个版本:旧版和新版。 旧版生命周期流程图包括以下阶段: - 实例化阶段:getDefaultProps -> getInitialState -> componentWillMount -> render -> componentDidMount - 更新阶段:componentWillReceiveProps -> shouldComponentUpdate -> componentWillUpdate -> render -> componentDidUpdate - 卸载阶段:componentWillUnmount 新版生命周期流程图如下: - 实例化阶段:constructor -> static getDerivedStateFromProps -> render -> componentDidMount - 更新阶段:static getDerivedStateFromProps -> shouldComponentUpdate -> render -> getSnapshotBeforeUpdate -> componentDidUpdate - 卸载阶段:componentWillUnmount 这些生命周期钩子函数提供了不同的时机,让我们可以在组件的不同状态下执行特定的操作。通过实现这些钩子函数,我们可以控制组件的渲染、更新和卸载等过程。请注意,在React 17及更高版本中,一些生命周期钩子函数已被标记为过时,建议使用新的生命周期钩子函数来替代。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【React】第六部分 生命周期](https://blog.csdn.net/Trees__/article/details/126190516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [React组件生命周期详解](https://download.csdn.net/download/weixin_38553648/13327682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [React学习笔记【6】(React生命周期)](https://blog.csdn.net/weixin_50378623/article/details/130507852)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大兵的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值