当前位置: 首页 > article >正文

React(6)

useEffect的基础使用

useEffect是一个React Hook函数,用于在React组件中创建不是由事件引起而是由渲染本身引起的操作,比如发送AJAX请求,更改DOM等等

import { useEffect, useState } from "react";
// 是用于组件创建不是由时间引起  而是渲染本身引起的操作 比如发送请求  
// 页面加载完成获取数据
const URL='http://geek.itheima.net/v1_0/channels'
function App() {
  const [list,setList]=useState([])
  useEffect(()=>{
   async function getList(){
      const res=await fetch(URL)
      const list=await res.json()
      console.log(list);
      setList(list.data.channels)
    }
    getList()//立即执行函数
  },[])
  return (
    <div className="App">
     <ul>
      {list.map(item=><li key={item.id}>{item.name}</li>)}
     </ul>
    </div>
  );
}

export default App;

import { useEffect, useState } from "react";
// 是用于组件创建不是由时间引起  而是渲染本身引起的操作 比如发送请求  
// 页面加载完成获取数据
// 不设置配置项时候
function App() {
  const [number,setNumber]=useState(0)
   // useEffect(()=>{
  //   console.log('组件第一次挂载和组件更新触发');
  // })
  // useEffect(()=>{
  //   console.log('空数组时候只会初始化加载');
  // },[])
  useEffect(()=>{
    console.log('初始化加载,依赖项变化');
  },[number])
  const addNum=()=>{
    setNumber(number+1)
  }
  return (
    <div className="App">
      <button onClick={addNum}>{number}</button>
    </div>
  );
}

export default App;

清除副作用的使用

子组件定时任务打印  在子组件的useEffect中进行return清除定时器

import { useEffect, useState } from "react";
function Son() {
  useEffect(() => {
    const Inter = setInterval(() => {
      console.log("定时器");
    }, 1000);

    return () => {
      clearInterval(Inter);
    };
  }, []);
  return <div>son组件</div>;
}
function App() {
  const [Show, setShow] = useState(true);

  return (
    <div className="App">
      {Show && <Son></Son>}
      <button onClick={() => setShow(false)}>卸载组件</button>
    </div>
  );
}

export default App;


http://www.kler.cn/a/544178.html

相关文章:

  • 【C#】C#中的线程安全:使用lock关键字确保共享资源的安全访问
  • JVM春招快速学习指南
  • React使用 useImperativeHandle 自定义暴露给父组件的实例方法(包括依赖)
  • w~自动驾驶~合集17
  • 【LeetCode】689、三个无重叠子数组的最大和
  • 探索技术新边界:让 HTML 电子凭证与二维码、PDF 完美融合
  • WordPress 角标插件:20 种渐变色彩搭配,打造专属菜单标识
  • zyNo.23
  • 17.推荐系统的在线学习与实时更新
  • 【WB 深度学习实验管理】使用 PyTorch Lightning 实现高效的图像分类实验跟踪
  • 2.5 模块化迁移策略:从传统项目到模块化系统
  • 【数据结构】(8) 二叉树
  • 证件照api图片检测丨照片更换底色
  • SSL域名证书怎么申请?
  • 成功撒花特效
  • 杂记:STM32 调试信息打印实现方式
  • DeepSeek 入驻 Cursor —— 表现能否超越 Claude?
  • Vulnhub靶机渗透-DC1
  • CTF-WEB: 利用Web消息造成DOM XSS
  • 服务器芯片合封电源解决方案
  • 系统漏洞扫描服务:安全风险识别与防护指南
  • AI模型指标
  • Vue.js学习笔记(八)H5性能优化——首屏加载速度提升
  • DeepSeek之Api的使用(将DeepSeek的api集成到程序中)
  • React 第二十四节 useDeferredValue Hook 的用途以及注意事项详解
  • 热更图片方案