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

柳州企业 商家应该如何做网站高端营销型网站建设

柳州企业 商家应该如何做网站,高端营销型网站建设,wordpress去除主题加密页脚,怎么做模板网站1 useCallback useMemo 和 useCallback 接收的参数都是一样,都是在其依赖项发生变化后才执行,都是返回缓存的值,区别在于 useMemo 返回的是函数运行的结果,useCallback 返回的是函数。 当需要使用 useCallback 的情况通常包括以…

1 useCallback

useMemo 和 useCallback 接收的参数都是一样,都是在其依赖项发生变化后才执行,都是返回缓存的值,区别在于 useMemo 返回的是函数运行的结果,useCallback 返回的是函数。

当需要使用 useCallback 的情况通常包括以下几种情形:

(1)将回调函数作为 prop 传递给子组件:在这种情况下,使用 useCallback 可以确保子组件在父组件重新渲染时不会不必要地重新渲染。

import React, { useCallback } from 'react';const ParentComponent = () => {const handleClick = useCallback(() => {console.log('Button clicked!');}, []);return <ChildComponent onClick={handleClick} />;
};const ChildComponent = ({ onClick }) => {return <button onClick={onClick}>Click me</button>;
};

(2)优化依赖项变化引起的重新渲染:在 useEffect 中使用 useCallback 可以避免不必要的重新执行。

import React, { useState, useEffect, useCallback } from 'react';const ExampleComponent = () => {const [count, setCount] = useState(0);const handleIncrement = useCallback(() => {setCount(count + 1);}, [count]);useEffect(() => {console.log('Count changed:', count);}, [handleIncrement]);return (<div><p>Count: {count}</p><button onClick={handleIncrement}>Increment</button></div>);
};

(3)避免不必要的函数创建:在需要动态生成函数的场景下,使用 useCallback 缓存函数。

import React, { useCallback } from 'react';const ExampleComponent = () => {const generateRandomNumber = useCallback(() => {return Math.floor(Math.random() * 100);}, []);return (<div><p>Random number: {generateRandomNumber()}</p></div>);
};

注意: useCallBack不要每个函数都包一下,否则就会变成反向优化,useCallBack本身就是需要一定性能的
useCallBack并不能阻止函数重新创建,它只能通过依赖决定返回新的函数还是旧的函数,从而在依赖不变的情况下保证函数地址不变。useCallBack你真的知道怎么用吗。

2 useMemo

useMemo 可以在函数组件 render 上下文中同步执行一个函数逻辑,这个函数的返回值可以作为一个新的状态缓存起来。

场景一:在一些场景下,需要在函数组件中进行大量的逻辑计算,那么我们不期望每一次函数组件渲染都执行这些复杂的计算逻辑,所以就需要在 useMemo 的回调函数中执行这些逻辑,然后把得到的产物(计算结果)缓存起来就可以了。
场景二:React 在整个更新流程中,diff 起到了决定性的作用,比如 Context 中的 provider 通过 diff value 来判断是否更新

缓存计算结果:

function Scope(){const style = useMemo(()=>{let computedStyle = {}// 经过大量的计算return computedStyle},[])return <div style={style} ></div>
}

缓存组件,减少子组件 render 次数:

function Scope ({ children }){const renderChild = useMemo(()=>{ children()  },[ children ])return <div>{ renderChild } </div>
}

参考

「React 进阶」 React 全部 Hooks 使用大全 (包含 React v18 版本 )

http://www.shuangfujiaoyu.com/news/54891.html

相关文章:

  • 做花茶网站解说seo怎么做优化排名
  • 在线网站制作系统源码潍坊网站建设方案咨询
  • 深圳外贸公司网站建设公司排名开电商需要多少钱
  • 做网站需要域名 域名是啥打广告去哪个平台免费
  • 关于推进网站集约化建设的讲话杭州网络推广网络优化
  • 自己建企业网站怎么建泉州百度关键词排名
  • 北京做网站制作公司什么是网站推广优化
  • 网站开发棋牌高级seo招聘
  • 永康网站优化公司国外比较开放的社交软件
  • 建网站 做淘宝客google框架一键安装
  • 国内购物平台排行榜seo营销论文
  • 给企业做网站的好处长沙seo就选智优营家
  • 苏州网络自学网站建设用asp做的网站
  • 中国建设银行网站如何注册做网络推广
  • 关闭wordpress多站点广州seo招聘网
  • 兰州市做网站建设的公司怎么优化关键词排名优化
  • 做蛋糕视频的网站广告网络推广
  • 桂阳做网站的软件定制开发外包站长工具seo查询软件
  • 详述网站建设的过程临沂网站建设公司哪家好
  • 做网站 不做源码软文是什么样子的
  • wordpress lens 主题优化游戏的软件
  • 网站建设温州深圳百度总部
  • 网站运营与管理期末考试最近一周的新闻热点事件
  • 成都网站seo服务网站关键词如何优化
  • 营销型网站定义百度竞价规则
  • wordpress 栏目链接地址关键词优化的价格查询
  • 上海网站制作衫上热门最火标题
  • 怎么在手机上制作网站百度手机助手网页版
  • 做商城网站建设哪家好本地推广最有效的方法
  • 谁可以做网站优化排名推广品牌网站建设解决方案