React(6)

useEffect的基础使用

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

javascript 复制代码
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;
javascript 复制代码
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清除定时器

javascript 复制代码
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;
相关推荐
小华同学ai17 分钟前
6.2k tar 热门项目,揭秘:一篇 Markdown 如何秒生成 PPT、书籍、文章
前端·后端·github
赫本的猫18 分钟前
JavaScript 数据存储机制:栈与堆的奥秘
前端·javascript
赫本的猫20 分钟前
JavaScript 闭包:从原理到实践
前端·javascript
90后的晨仔21 分钟前
Stage模型中的有哪几种类型的组件?
前端·harmonyos
laperter22 分钟前
js容易遗漏但非常重要的点
前端
沐森25 分钟前
Set 与 Map 深度解析:区别、特性与应用场景,弱引用版本对比:WeakSet 与 WeakMap
前端
Mintopia27 分钟前
计算机图形学之纹理合成:给数字世界穿上华丽外衣
前端·javascript·计算机图形学
90后的晨仔33 分钟前
鸿蒙应用开发:FA模型与Stage模型生命周期详解(基础篇)
前端·harmonyos
EndingCoder1 小时前
React Native 项目实战 —— 记账本应用开发指南
javascript·react native·react.js
Magnum Lehar1 小时前
wpf游戏引擎前端的Transform.cs实现
前端·游戏引擎·wpf