react 组件生命周期

1. 挂载阶段(Mounting)

在函数式组件中,可以使用`useEffect`钩子函数来模拟`componentDidMount`的功能

javascript 复制代码
import { useEffect, useState } from "react";



const MyComponent = () => {

  const [data, setData] = useState(null);

  useEffect(() => {

    fetch("https://api.example.com/data")

      .then((response) => response.json())

      .then((data) => setData(data));

  }, []);

  return <div>{data && <p>{data.message}</p>}</div>;

};

2. 更新阶段(Updating)

在函数式组件中,可以在`useEffect`钩子函数中通过检查依赖项的变化来模拟`componentDidUpdate`的功能。

javascript 复制代码
import { useEffect, useState } from "react";

const MyComponent = () => {

  const [count, setCount] = useState(0);

  useEffect(() => {

    console.log("Component updated");

  }, [count]);

  return (

    <div>

      <p>Count: {count}</p>

      <button onClick={() => setCount(count + 1)}>Increment</button>

    </div>

  );

};

3. 卸载阶段(Unmounting)

在函数式组件中,如果使用`useEffect`钩子函数来设置定时器等副作用操作,可以通过返回一个清理函数来模拟`componentWillUnmount`的功能。

javascript 复制代码
import React, { useEffect, useState } from "react";

const MyComponent = () => {

  useEffect(() => {

    const timer = setInterval(() => {

      // 执行定时任务

    }, 1000);

    return () => clearInterval(timer);

  }, []);

  return <div>{/* 组件内容 */}</div>;

};
相关推荐
崔庆才丨静觅5 分钟前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊7 分钟前
jwt介绍
前端
爱敲代码的小鱼14 分钟前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax
Cobyte39 分钟前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
NEXT061 小时前
前端算法:从 O(n²) 到 O(n),列表转树的极致优化
前端·数据结构·算法
剪刀石头布啊1 小时前
生成随机数,Math.random的使用
前端
剪刀石头布啊1 小时前
css外边距重叠问题
前端
剪刀石头布啊1 小时前
chrome单页签内存分配上限问题,怎么解决
前端
剪刀石头布啊1 小时前
css实现一个宽高固定百分比的布局的一个方式
前端
剪刀石头布啊1 小时前
js数组之快速组、慢数组、密集数组、稀松数组
前端