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

关键词排行优化网站广州哪个区最大

关键词排行优化网站,广州哪个区最大,天津河西做网站公司,做网站有哪些语言useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook#xff0c;返回一个函数的 memoized的值#xff1b; 2、如果多次传入的依赖项不变#xff0c;那么多次定义的时候#xff0c;返回的值是相同的,防止频繁触发更新#xff1b; 3、多应用在 父组件为函…useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook返回一个函数的 memoized的值 2、如果多次传入的依赖项不变那么多次定义的时候返回的值是相同的,防止频繁触发更新 3、多应用在 父组件为函数式组件子组件也为函数式组件并且子组件被 React.memo() 包裹着 4、主要用于性能优化即使不适用useCallback代码也要能正常运行 useCallback 基本用法 写法 let memoizedCallback useCallback(fn, dependencies)第一个参数fn 是想要缓存的函数可以接收任何参数并返回任何值React 中会在初始化时候调用而不是渲染时候调用 当执行下一次渲染时候如何出入的依赖值 dependencies 相同则会返回相同的函数 memoizedCallback 相反 若依赖值 dependencies 不同则会返回新的函数 memoizedCallback但是 React 不会主动去调用 memoizedCallback函数需要开发者自己决定什么时候执行调用函数 第二个参数 dependencies是否要更新 fn 的所有响应式值的一个列表可以传入空数组:[] 响应式值包括 props、state和所有在你组件内部直接声明的变量和函数。 useCallback 示例 1、为什么要使用 useCallback 当我们传入相同值的时候不管是对象类型还是基本类型都不希望子组件进行更新渲染 在不需要大量渲染的时候性能还可以但是当数据量大的时候若相同的数据也触发子组件渲染则会出现性能问题 2、在不使用 useCallback() 的时候 每次触发 handleAdd 事件时候都会渲染子组件 ChildA // 父组件 import { useCallback, useState} from react import ChildA from ./childA export default function MyCallBack() {const [useInfo, setUseInfo] useState({name: Andy,age: 18})const myCallback () {console.log(useCallback)return useInfo.name}const handleAdd () {setUseInfo({name: Andy,age: 18})}return (divh3This is a MyCallBack demo .---{count}/h3button onClick{handleAdd}add/buttonhr /ChildA onAddCount{myCallback} /ChildA/div) } // 子组件 import React, { memo } from reactconst ChildA memo(({onAddCount}) {console.log(ChildA 组件更新了, count)return (divh3This is a ChildA demo ./h3button onClick{onAddCount}子组件/buttonhr //div) })当我们点击 add 按钮时候发现页面打印 “ChildA 组件更新了”说明传入相同的数据时候会触发子组件渲染如图所示 3、使用 useCallback 时候 import { useCallback,useState} from react import ChildA from ./childA export default function MyCallBack() {console.log(父组件callback)const [count, setCount] useState(0)const [useInfo, setUseInfo] useState({name: Andy,age: 18})const myCallback useCallback(() {console.log(useCallback)return useInfo.name}, [useInfo.name])const handleAdd () {setUseInfo({name: Andy,age: 18})}return (divh3This is a MyCallBack demo .---{count}/h3button onClick{handleAdd}add/buttonhr /ChildA onAddCount{myCallback} /ChildA/div) } // 子组件 import { memo } from react // eslint-disable-next-line react/display-name const ChildA memo(({useInfo, count, onAddCount}) {console.log(ChildA 组件更新了, count)const handleChangeName () {setName(Tom)}return (divh3This is a ChildA demo ./h3h4{count}/h4h4姓名{useInfo?.name || --}/h4h4年龄{useInfo?.age || --}/h4button onClick{onAddCount}子组件/buttonhr //div) }) export default ChildA 在点击 add 按钮 更新相同数据时候只有父组件渲染子组件不会再渲染如图 总结 若要实现 传入相同数据时候只更新当前组件而子组件不进行渲染需使用 useCallback() 和 memo 来处理
http://www.hkea.cn/news/14303483/

相关文章:

  • 几百的网站项目网络图经常被称为什么
  • 合肥做网站可以吗卖主机网站
  • 成品网站分享一下济南网站建设优化百家号
  • 有什么教做甜品的网站网站备案 多ip
  • 北京哪家公司做网站网页设计的注意事项
  • 建设网站经营范围网站自动更新
  • 如何零基础做网站福州做网站建设服务商
  • 微信公众号网站导航怎么做网站推广团队
  • 广告网站开发医疗网站建设基本流程图
  • 大宗农产品现货交易平台搜索引擎优化常用方法
  • js 获取 网站路径广州市政务中心官网
  • 为网站做seo需要什么软件工程建设项目
  • 网站权重值个人简历自我评价
  • 大众点评网站团购怎么做江苏省交通建设监理协会网站
  • 网站使用授权书地方网站怎么做的
  • 好看的手机网站模板免费下载网站关键词怎么做上首页
  • 天津南昌网站建设软件工程专业考研学校排名
  • 龙华网站建设的软件淘宝店铺怎么装修
  • 哪个公司的网站做的好wordpress社交
  • 西安网站优化招聘widows安装wordpress
  • 金华网站建设团队做网站需要什么资金
  • wordpress 小游戏主题苏州seo门户网
  • 外贸网站友情链接做购物网站收费
  • 商务网站建设与维护课程淘宝网站那个做的
  • 评价一个网站浙江省建设厅 网站是多少
  • 2015做那个网站致富wordpress网站有哪些
  • c 做网站怎么居中饮料代理招商网
  • 网站建设修改建议书网站的特征包括哪些方面
  • 毕业设计网站建设流程免费查找资料的网站
  • 天津品牌网站建设好处哈尔滨建站优化定制