react: useEffect

可以吧useEffect看作是componentDidMount componentDidUpdate componentWillUnmount 三个函数的组合

在https://ant.design/components/button-cn 打开一个codesanbox, 替换下面代码

import React, { useEffect, useState } from "react";
import ReactDom from "react-dom";

const App: React.FC = () => {
  const [data, setData] = useState(1);
  const [person, setPerson] = useState("zhang");
  // 写法一: 只要组件数据发生改变就会触发
  useEffect(() => {
    console.log("组件挂载或更新执行");
  });
  // 写法二; 首次只会触发第一遍, 组件销毁会执行return后的函数
  useEffect(() => {
    console.log("组件挂载执行");
    return () => {
      console.log("组件卸载之前执行");
    };
  }, []);
  //写法三: 指定数据改变执行
  useEffect(() => {
    document.title = 123 + "";
    return () => {
      document.title = data + "";
      console.log("组件卸载之前执行");
    };
  }, [data]);
  return (
    <>
      {data}
      <button
        onClick={() => {
          setData(data + 1);
        }}
      >
        修改数据1
      </button>
      {person}
      <button
        onClick={() => {
          setPerson("zhang san");
        }}
      >
        修改数据2
      </button>
      <button onClick={() => ReactDom.unmountComponentAtNode("container")}>
        卸载container组件
      </button>
    </>
  );
};

export default App;


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值