react Hook useEffect的基本使用及注解

一、概述

useEffectReact提供的一个Hook,用于在函数组件中执行副作用操作。副作用操作通常包括数据获取、订阅事件、手动操作DOM等。useEffect可以让我们在函数组件中模拟类组件的生命周期方法(如componentDidMountcomponentDidUpdatecomponentWillUnmount)。

二、useEffect的基本用法和常见场景

1、基本用法:

import React, { useEffect } from 'react';

function MyComponent() {
  useEffect(() => {
    // 在组件渲染后执行副作用操作
    console.log('Component did mount');

    return () => {
      // 在组件卸载前执行清理操作
      console.log('Component will unmount');
    };
  }, []); // 第二个参数是依赖数组,当依赖发生变化时才会重新执行effect

  return <div>My Component</div>;
}

2、数据获取:

import React, { useState, useEffect } from 'react';

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

  useEffect(() => {
    fetch('请求接口地址')
      .then(response => response.json())
      .then(data => setData(data));
  }, []); // 只在组件挂载时获取数据

  return (
    <div>
      {data ? <p>{data}</p> : <p>Loading...</p>}
    </div>
  );
}

3、监听状态变化:

import React, { useState, useEffect } from 'react';

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

  useEffect(() => {
    console.log('Count has changed:', count);
  }, [count]); // 监听count的变化,变化则useEffect重新执行

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

4、清理副作用:

import React, { useEffect } from 'react';

function TimerComponent() {
  useEffect(() => {
    const timer = setInterval(() => {
      console.log('Tick');
    }, 1000);

    return () => {
      clearInterval(timer); // 清除定时器
    };
  }, []); // 只在组件挂载时设置定时器

  return <div>Timer Component</div>;
}

通过useEffect,我们可以在函数组件中处理各种副作用操作。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值