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

React基础之useMeno

作用:在组件每次重新渲染的时候缓存计算的结果

import { useReducer, useState } from "react";

function fib(n){

  console.log('开始计算');

  if(n<3){

    return 1

  }

  return fib(n-2)+fib(n-3)

}

function App() {

  const [count1,setCount1]=useState(0)

  const [count2,setCount2]=useState(0)

  const result=fib(count1)

  return (

    <div className="App">

      this is app,

      <button onClick={()=>{setCount1(count1+1)}}>change count1:{count1}</button>

      <button onClick={()=>{setCount2(count2+1)}}>change count2:{count2}</button>

      {result}

    </div>

  );

}

export default App;

此时我们点击count1或是count2都会重新计算fib

import { useMemo, useReducer, useState } from "react";

function fib(n){

  console.log('开始计算');

  if(n<3){

    return 1

  }

  return fib(n-2)+fib(n-3)

}

function App() {

  const [count1,setCount1]=useState(0)

  const [count2,setCount2]=useState(0)

  const result=useMemo(()=>{

    //返回计算得到的结果

    return fib(count1)

  },[count1])

  return (

    <div className="App">

      this is app,

      <button onClick={()=>{setCount1(count1+1)}}>change count1:{count1}</button>

      <button onClick={()=>{setCount2(count2+1)}}>change count2:{count2}</button>

      {result}

    </div>

  );

}

export default App;

此时,只有count发生变化,result才会发生变化


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

相关文章:

  • 01计算机视觉学习计划
  • 【算法】矩阵置零
  • 责任链模式+策略模式在项目中的实践
  • ​‌uniqid()函数‌是PHP中用于生成唯一标识符的内置函数​
  • 自学微信小程序的第十四天
  • 前端算法库CryptoJS 有哪些格式转换
  • 【大学生体质】智能 AI 旅游推荐平台(Vue+SpringBoot3)-完整部署教程
  • 2025年03月07日Github流行趋势
  • 【PostgreSQL】如何免密使用PostgreSQL数据库内置工具
  • vue3页面html导出word文档
  • android studio开发文档
  • HarmonyOS 应用程序包结构 (编译态)
  • 低代码平台的后端架构设计与核心技术解析
  • Spring面试问答
  • 鸿蒙生态日日新,夸克、顺丰速运、驾校一点通等多款应用功能更新
  • MC9S12单片机上电初始化过程及BOOTLOADER分析
  • 国自然面上项目|基于海量多模态影像深度学习的肝癌智能诊断研究|基金申请·25-03-07
  • 阿里云操作系统控制台——ECS操作与性能优化
  • 编写一个基于OpenSSL的SSL/TLS服务端(HTTPS)可运行的完整示例
  • 13.数据结构(软考)