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

安徽六安毛坦厂中学seo实战培训视频

安徽六安毛坦厂中学,seo实战培训视频,网站的免费空间是什么,wordpress首页不显示整篇文章useCallback 和 useMemo 结合 React.Memo 方法的使用是常见的性能优化方式,可以避免由于父组件状态变更导致不必要的子组件进行重新渲染 useCallback useCallback 用于创建返回一个回调函数,该回调函数只会在某个依赖项发生改变时才会更新,…

useCallback 和 useMemo 结合 React.Memo 方法的使用是常见的性能优化方式,可以避免由于父组件状态变更导致不必要的子组件进行重新渲染

useCallback

useCallback 用于创建返回一个回调函数,该回调函数只会在某个依赖项发生改变时才会更新,可以把回调函数传递给经过优化的并使用引用相等性去避免非必要渲染的子组件,在 props 属性相同情况下,React 将跳过渲染组件的操作并直接复用最近一次渲染的结果

import React, { useState, useCallback } from 'react';function SubmitButton(props) {const { onButtonClick, children } = props;console.log(`${children} updated`);return (<button onClick={onButtonClick}>{children}</button>);
}
// 使用 React.memo 检查 props 变更,复用最近一次渲染结果
SubmitButton = React.memo(submitButton);export default function CallbackForm() {const [count1, setCount1] = useState(0);const [count2, setCount2] = useState(0);const handleAdd1 = () => {setCount1(count1 + 1);}// 调用 useCallback 返回一个 memoized 回调,该回调在依赖项更新时才会更新const handleAdd2 = useCallback(() => {setCount2(count2 + 1);}, [count2]);return (<><div><p>count1: {count1}</p><SubmitButton onButtonClick={handleAdd1}>button1</SubmitButton></div><div><p>count2: {count2}</p><SubmitButton onButtonClick={handleAdd2}>button2</SubmitButton></div></>)
}

useCallback(fn, deps) 相当于 useMemo(() => fn, deps),以上 useCallback 可替换成 useMemo 结果如下:

const handleAdd2 = useMemo(() => {return () => setCount2(count2 + 1);
}, [count2]);

useMemo

把“创建”函数和依赖项数组作为参数传入 useMemo,它仅会在某个依赖项改变时才重新计算 memoized 值。这种优化有助于避免在每次渲染时都进行高开销的计算

使用注意:

  • 传入 useMemo 的函数会在渲染期间执行,不要在这个函数内部执行与渲染无关的操作
  • 如果没有提供依赖项数组,useMemo 在每次渲染时都会计算新的值
import React, { useState, useMemo } from 'react';function counterText({ countInfo }) {console.log(`${countInfo.name} updated`);return (<p>{countInfo.name}: {countInfo.number}</p>);
}
// // 使用 React.memo 检查 props 变更,复用最近一次渲染结果
const CounterText = React.memo(counterText);export default function Counter() {const [count1, setCount1] = useState(0);const [count2, setCount2] = useState(0);const countInfo1 = {name: 'count1',number: count1};// 使用 useMemo 缓存最近一次计算结果,会在依赖项改变时才重新计算const countInfo2 = useMemo(() => ({name: 'count2',number: count2}), [count2]);return (<><div><CounterText countInfo={countInfo1} /><button onClick={() => setCount1(count1 + 1)}>Add count1</button></div><div><CounterText countInfo={countInfo2} /><button onClick={() => setCount2(count2 + 1)}>Add count2</button></div></>);
}

 

http://www.yidumall.com/news/77999.html

相关文章:

  • 做网站用什么软件最好网站建设公司排名
  • 做网站需要什么素材搜索引擎广告形式有哪些
  • 纯flash网站价格网址收录大全
  • 答建设网站网站查询系统
  • 网站建设方为客户提供使用说明书淘宝营销推广方案
  • 怎么用自己笔记本建设网站搜索引擎优化是指什么
  • 做网站 修复漏洞在线培训网站
  • 潮阳建设局网站如何自创网站
  • 网站后台构建站长友情链接
  • 网站建设方案ppt 枫子科技seo优化操作
  • 用vs做的网站怎么打开吗优化排名推广教程网站
  • 音箱厂家东莞网站建设百度关键词排名销售
  • 莆田哪里有网站开发吸引人的推广标题
  • 德阳做网站的公司网络推广一个月的收入
  • 教育培训网站有哪些山东企业网站建设
  • 网站模板整站资源广告公司名称
  • 网站建设及维护协议seo技术蜘蛛屯
  • 什么网站做风险投资百度扫一扫入口
  • 上海外贸网站推广哪家好武汉网站优化
  • 网站类产品怎么做竞品分析枫林seo工具
  • 站内优化怎么做东莞百度seo推广公司
  • 物流建设网站总结报告公司seo排名优化
  • 电影网站怎么做要多少钱百度收录方法
  • 培 网站建设方案 doc网络营销电子版教材
  • 有没有做网页的兼职网站十大计算机培训学校
  • 做网站怎么狠抓措施落实
  • 做网站目录seo优化就业前景
  • 各种网站解决方案整合营销传播方案
  • 建站之星模板好吗百度下载并安装到桌面
  • 企业做网站的必要性seo研究中心vip课程