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

wordpress安装服务器配置广州网站建设 seo

wordpress安装服务器配置,广州网站建设 seo,网页制作框架教程,上海公关公司排行榜概述 useCallback缓存的是一个函数#xff0c;主要用于性能优化!!! 基本用法 如何进行性能的优化呢#xff1f; useCallback会返回一个函数的 memoized#xff08;记忆的#xff09; 值#xff1b;在依赖不变的情况下#xff0c;多次定义的时候#xff0c;返回的值是…概述 useCallback缓存的是一个函数主要用于性能优化!!! 基本用法 如何进行性能的优化呢 useCallback会返回一个函数的 memoized记忆的 值在依赖不变的情况下多次定义的时候返回的值是相同的 语法 const memoizedCallback useCallback(() {doSomething(a, b);},[a, b], ); 通常使用useCallback的目的是不希望子组件进行多次渲染并不是为了函数进行缓存在使用 React.memo 时对于对象类型的 props只会比较引用浅对比。但是因为组件每次更新都会创建新的 props 值比如新的对象、事件处理程序等函数组件的特性。这就导致React.memo 在处理对象类型的 props 时会失效每次的 props 都是新对象。但是我们还是想让 React.memo 在处理对象类型的 props 时也有效。为了让 React.memo 处理对象类型的 props 有效只要在组件更新期间保持对象类型引用相等即可 这时候就要用到以下两个 Hooks useCallback Hook记住函数的引用在组件每次更新时返回相同引用的函数。useMemo Hook记住任意数据数值、对象、函数等在组件每次更新时返回相同引用的数据【功能之一】 示例 import {useCallback, useState} from react;export default function UseCallback() {let [firstName, setFirstName] useState(张);let [lastName, setLastName] useState(三);let getFullName useCallback(() {return firstName lastName}, [firstName, lastName])return (div姓名{getFullName()}/div) } 缓存了一个函数可以在组件中使用!!! 演示示例 使用场景在使用 React.memo 时为了组件每次更新时都能获取到相同引用的函数就要用到 useCallback Hook 注意需要配合 React.memo 高阶函数一起使用。 作用记忆传入的回调函数这个被记住的回调函数会一直生效直到依赖项发生改变 解释 第一个参数必选需要被记忆的回调函数。第二个参数必选依赖项数组用于指定回调函数中依赖用到的数据类似于 useEffect 的第二个参数。即使没有依赖也得传入空数组[]此时useCallback 记住的回调函数就会一直生效。返回值useCallback 记住的回调函数。useCallback 记住的回调函数会一直生效或者说会一直返回同一个回调函数直到依赖项发生改变。 import React, { memo, useState, useCallback, useRef } from reactconst App memo(() {const [count, setCount] useState(0)const [money, setMoney] useState(1000)// 初始写法const help useCallback(() {setCount(count - 1)}, [count])// 优化写法useRef--在组件多次渲染时返回的是同一个值// 这种写法容易陷入闭包陷阱const help useCallback(() {setCount(count - 1)}, [])// 推荐优化写法const countRef useRef();countRef.current count;const help useCallback(() {setCount(countRef.current - 1)}, [])return (divh1计数器/h1div豆豆被打了{count}次/divdiv金钱{money}/divbutton onClick{() setCount(count 1)}打豆豆/buttonbutton onClick{() setMoney(money 100)}加钱/buttonhr /{count 5 ? DouDou count{count} help{help}/DouDou : 豆豆被打死了}/div) })export default App Doudou.jsx // 子组件 const DouDou memo(({ count, help }) {console.log(豆豆组件渲染)return (divh3我是豆豆组件{count}/h3button onClick{help}续命/button/div) }) export default Doudou 总结 要配合  memo 不然可能反而会降低性能 当需要将一个函数传递给子组件最好使用 useCallback 进行优化将优化之后的函数传递给子组件当需要将一个函数传递给子组件时最好使用useCallback进行优化将优化之后的函数传递给子组件 尽量不要使用 useCallback 我建议在项目中尽量不要用 useCallback大部分场景下不仅没有提升性能反而让代码可读性变的很差。 useCallback 大部分场景没有提升性能 useCallback 可以记住函数避免函数重复生成这样函数在传递给子组件时可以避免子组件重复渲染提高性能。 基于以上认知很多人包括我自己在写代码时只要是个函数都加个 useCallback是你么反正我以前是。 但我们要注意提高性能还必须有另外一个条件子组件必须使用了 shouldComponentUpdate 或者 来忽略同样的参数重复渲染。 假如 ExpensiveComponent 组件只是一个普通组件是没有任何用的。比如下面这样 必须通过 React.memo 包裹 ExpensiveComponent 才会避免参数不变的情况下的重复渲染提高性能。 所以useCallback 是要和 shouldComponentUpdate/React.memo 配套使用的你用对了吗当然我建议一般项目中不用考虑性能优化的问题也就是不要使用 useCallback 了除非有个别非常复杂的组件单独使用即可。 useCallback 让代码可读性变差 我看到过一些代码使用 useCallback 后大概长这样 在上面的代码中变量依赖一层一层传递最终要判断具体哪些变量变化会触发 useEffect 执行是一件很头疼的事情。 我期望不要用 useCallback直接裸写函数就好 在 useEffect 存在延迟调用的场景下可能造成闭包问题那通过咱们万能的方法就能解决 对 useCallback 的建议就一句话没事别用 useCallback。
http://www.hkea.cn/news/14467255/

相关文章:

  • 如何做实体店的网站海北公司网站建设多少钱
  • 网站和微信 微网站解决方案做卖车的网站有哪些
  • 最低成本做企业网站合肥seo报价
  • 做网站做电脑版还是手机版好羽毛球赛事2022直播
  • 用dw做网站用什么主题比较好可以做网站二维码吗
  • 哪个建站比较好网站建设步骤流程详细介绍
  • 无锡做网站建设中山哪里网站建设
  • 西部数码做的网站打不开网站开发的现状研究
  • 展示网站源码下载厦门 网站建设 公司
  • 合肥做企业建网站那家好个人主页图片素材
  • 贵阳网站如何推广深圳外贸公司联系电话
  • 河南做网站汉狮网络咨询公司名字大全
  • 广州外贸网站效果动漫制作专业的来源
  • 网站支付接口如何做外卖网站建设费用
  • 广东省建设执业资格注册中心网站中国住房和城乡建设部网站造价师注册
  • 电商网站 制作项目网络图关键路径
  • 外币信用卡怎么做网站上用厦门企业网站设计公司
  • 官方网站建设的必要网站生成海报功能怎么做的
  • 做瞹瞹嗳视频网站在线观看杭州模板网站建设系统
  • 怎么制作属于自己的网站东莞关键词seo优化
  • 建设买卖网站要多少钱中国建设银行信用卡旅游卡服务网站
  • 打车网站开发呼和浩特网站制作
  • 有专门为个人网站做推广的吗网站模版如何使用
  • 网站外链建设是什么女装网站建设计划书
  • 网站空间10g建设网站需要哪些域名
  • 鄂州网站制作如何做领券网站
  • 一级域名网站怎样收费的用dreammwea怎么做视频网站
  • 山东天成水利建设 网站建筑公司网站建设方案
  • php网站建设用什么软件重庆h5网站建设模板
  • wordpress网站分析十堰哪家网站制作公司技术好