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

【React】Memo

组件重新渲染时缓存计算的结果。

实例:count1计算斐波那契数列,count2和count1可以触发数值变化。使用memo可以使只有在count1变化时触发斐波那契数列计算函数,而count2变化时不触发斐波那契数列计算函数。


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

function fib(n) {
  console.log('计算函数执行')
  if (n < 3) {
    return 1
  }
  return fib(n - 1) + fib(n - 2)
}

function App() {
  const [count1, setCount1] = useState(0)
  const [count2, setCount2] = useState(0)
  console.log('组件重新渲染')
  const result = useMemo(() => {
    return fib(count1)
  }, [count1])
  return (
    <div className="App">
      <button onClick={() => { setCount1(count1 + 1) }}>change count1: {count1}</button>
      <button onClick={() => { setCount2(count2 + 1) }}>change count2: {count2}</button>
      result: {result}
    </div>
  )
}

export default App

image.png

image.png


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

相关文章:

  • Java 8 Optional类
  • 挖掘机检测数据集,准确识别率91.0%,4327张原始图片,支持YOLO,COCO JSON,PASICAL VOC XML等多种格式标注
  • 【PowerQuery专栏】PowerQuery的函数Excel.WorkBook
  • 什么是长连接?Netty如何设置进行长连接?
  • springboot基于微信小程序的传统美食文化宣传平台小程序
  • 44.ComboBox的数据绑定 C#例子 WPF例子
  • 【活动回顾】ABeam 德硕| 艾宾信息技术开发(西安)西北高校行——与西北三所高校签订校企合作协议
  • python opencv -模板匹配
  • IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket
  • python类和对象
  • Rust语言入门教程(九) - 结构体
  • 交流回馈负载的主要工作方式
  • laravel实现发送邮件功能
  • Python语言学习笔记之三(字符编码)
  • 基于C#实现块状链表
  • 制造业工厂如何选择生产管理MES系统?
  • iOS移动应用程序的备案与SHA-1值查看
  • 【部署运维】docker:入门到进阶
  • 基于AC6969的蓝牙控制RGB彩灯
  • Java中的jvm——面试题+答案(JVM的一些高级概念、调优技巧、垃圾回收算法等)——第13期
  • Redis-Redis多级缓存架构
  • The Matrix format of Least Square Method (LMS)
  • 实验五 键盘按键与数码管显示(汇编与微机原理)
  • 17 Go的文件操作
  • jenkins + gitlab 自动部署(webhook)
  • 华为认证 | Security安全认证学什么?IA、IP、IE学习内容详解!