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

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.dtcms.com/a/59602.html

相关文章:

  • LangChain4j集成AI大模型的两种方式
  • 前端循环:for、forEach、map 指南
  • [AtCoder Beginner Contest 396] F - Rotated Inversions
  • Maven快速入门指南
  • 自回归模型(Autoregressive, AR)解读
  • 平时作业(偷懒)
  • 一、Jenkins简单配置(使用语言、凭证、SSH)
  • WinUI 3 支持的三种窗口 及 受限的窗口透明
  • FPGA设计时序约束用法大全保姆级说明
  • 基于LabVIEW的脚本化子VI动态生成
  • 将图片存储至阿里云 OSS
  • 2025数据存储技术风向标:解析数据湖与数据仓库的实战效能差距
  • 基于yolov8的土豆马铃薯叶子病害检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • OSPF报文分析
  • 深度学习模型Transformer核心组件—前馈网络FFN
  • python如何把多维列表转换为dataframe
  • 【RabbitMQ | 第1篇】Erlang 和 RabbitMQ 的下载安装
  • easyconnect下服务器联网
  • 大白话JavaScript原型链查找机制与继承实现原理
  • Service与Ingress:如何将你的应用暴露给世界
  • 嵌入式 ARM Linux 系统构成(6):应用层(Application Layer)
  • VSTO(C#)Excel开发1:起步 示例项目
  • 【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
  • Ardupilot开源无人机之Geek SDK进展2025Q1
  • 用AI学习ANN人工神经网络2——什么是Transformer
  • Element使用
  • 力扣72题编辑距离
  • 【弹性计算】异构计算云服务和 AI 加速器(三):GPU 虚拟化技术
  • nuxt2 打包优化使用“compression-webpack-plugin”插件
  • Docker常用命令清单