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

做网站的ebay网阿里云官网首页

做网站的ebay网,阿里云官网首页,电商首页模板网站,WordPress yeepay文章目录 React.memo两种方式参数应用场景 拓展useMemouseMemo(calculateValue, dependencies) 参考资料 React.memo React 的渲染机制,组件内部的 state 或者 props 一旦发生修改,整个组件树都会被重新渲染一次,即时子组件的参数没有被修改&…

文章目录

  • React.memo
    • 两种方式
    • 参数
    • 应用场景
  • 拓展
    • useMemo
      • useMemo(calculateValue, dependencies)
  • 参考资料

React.memo

React 的渲染机制,组件内部的 state 或者 props 一旦发生修改,整个组件树都会被重新渲染一次,即时子组件的参数没有被修改,甚至无状态组件
会造成性能浪费

React.memo 是 React 官方提供的一个高阶组件,用于缓存我们的需要优化的组件

React 中的组件被设计为在状态或 props 值发生变化时重新渲染。但是,这可能会影响应用程序的性能,因为即使更改只是为了影响父组件,附加到父组件的所有其他子组件都将重新呈现。当父组件重新渲染时,其所有子组件也会重新渲染。
React Memo 是一个高阶组件,它包装组件以记忆渲染的输出并避免不必要的渲染。这提高了性能,因为它会记住结果并跳过渲染以重用上次渲染的结果。

已经记忆化的组件,怎么触发更新

  • 即使一个组件被记忆化了,当它自身的状态发生变化时,它仍然会重新渲染。memoization 只与从父组件传递给组件的 props 有关。
  • 即使组件已被记忆化,当其使用的 context 发生变化时,它仍将重新渲染。记忆化只与从父组件传递给组件的 props 有关。
  • useMemo
    • 见拓展(下面)
  • 自定义比较函数(见Memo参数-第二个参数,下面)

两种方式

  • 直接创建(类式创建)
    const myComponent = React.memo((props) => {/* render using props */
    });
    export default myComponent;
    
  • 函数组件
    const myComponent = (props) => {/* render using props */};export const MemoizedComponent = React.memo(myComponent);

仅当 props 值发生变化或组件的状态和上下文发生变化时,memo组件才会重新渲染

参数

React.memo(Component, arePropsEqual?)

  • Component
    组件
  • arePropsRqual
    可选参数,为一个函数
    接受两个参数:

    一个函数,接受两个参数:组件的前一个 props 和新的 props。如果旧的和新的 props 相等,即组件使用新的 props 渲染的输出和表现与旧的 props 完全相同,则它应该返回 true。否则返回 false。通常情况下,你不需要指定此函数。默认情况下,React 将使用 Object.is 比较每个 prop。

function MyComponent(props) {/* 使用 props 渲染 */
}
function shouldMemo(prevProps, nextProps) {/*如果把 nextProps 传入 render 方法的返回结果与将 prevProps 传入 render 方法的返回结果一致则返回 true,否则返回 false*/
}
export default React.memo(MyComponent, shouldMemo);

应用场景

  • 当props没有改变时跳过重新渲染

  • 使用state更新记忆化(memoized)组件

切记,不可以普遍使用该组件,不能都进行缓存,太多缓存,会造成负优化

拓展

useMemo

useMemo(calculateValue, dependencies)

在组件的顶层调用 useMemo 来缓存每次重新渲染都需要计算的结果,它在每次重新渲染的时候能够缓存计算结果

    const cachedValue = useMemo(calculateValue, dependenies)
  • calculateValue
    要缓存计算的函数。之后组件更新,如果dependenies没有发生变化,React将直接返回相同值。否则,将会再次调用calculateValue并返回最新结果,然后进行缓存以便下次进行使用。
  • dependenies
    跟一般钩子的依赖项作用一样

参考资料

官网
掘金


文章转载自:
http://cigarette.tyjp.cn
http://statuette.tyjp.cn
http://descloizite.tyjp.cn
http://substratum.tyjp.cn
http://proctectomy.tyjp.cn
http://tomography.tyjp.cn
http://buenaventura.tyjp.cn
http://bomblet.tyjp.cn
http://seamstress.tyjp.cn
http://boxthorn.tyjp.cn
http://gingiva.tyjp.cn
http://permeameter.tyjp.cn
http://dooda.tyjp.cn
http://counterorder.tyjp.cn
http://milkmaid.tyjp.cn
http://illfare.tyjp.cn
http://outvoice.tyjp.cn
http://flukicide.tyjp.cn
http://chirrup.tyjp.cn
http://brainpower.tyjp.cn
http://spasm.tyjp.cn
http://adjournment.tyjp.cn
http://ahd.tyjp.cn
http://formfitting.tyjp.cn
http://woolenette.tyjp.cn
http://protozoan.tyjp.cn
http://locket.tyjp.cn
http://kroon.tyjp.cn
http://lae.tyjp.cn
http://propellant.tyjp.cn
http://posho.tyjp.cn
http://multinest.tyjp.cn
http://domainal.tyjp.cn
http://seasickness.tyjp.cn
http://flout.tyjp.cn
http://heating.tyjp.cn
http://industrialized.tyjp.cn
http://ululant.tyjp.cn
http://snuzzle.tyjp.cn
http://ropework.tyjp.cn
http://kernelly.tyjp.cn
http://foulmouthed.tyjp.cn
http://mange.tyjp.cn
http://xenodochium.tyjp.cn
http://spermatogenetic.tyjp.cn
http://dps.tyjp.cn
http://beechy.tyjp.cn
http://astereognosis.tyjp.cn
http://flayflint.tyjp.cn
http://sovietize.tyjp.cn
http://iatrochemistry.tyjp.cn
http://ecarte.tyjp.cn
http://cheloid.tyjp.cn
http://ranular.tyjp.cn
http://gelatose.tyjp.cn
http://legislatively.tyjp.cn
http://esquisseesquisse.tyjp.cn
http://umbrette.tyjp.cn
http://concentration.tyjp.cn
http://ultracentenarian.tyjp.cn
http://hemostatic.tyjp.cn
http://victoria.tyjp.cn
http://beau.tyjp.cn
http://trisyllable.tyjp.cn
http://etymological.tyjp.cn
http://cachinnatoria.tyjp.cn
http://reluct.tyjp.cn
http://oiler.tyjp.cn
http://fascinating.tyjp.cn
http://supernatural.tyjp.cn
http://manslaying.tyjp.cn
http://willem.tyjp.cn
http://lcj.tyjp.cn
http://ser.tyjp.cn
http://sartor.tyjp.cn
http://calciphylaxis.tyjp.cn
http://outwent.tyjp.cn
http://delphinia.tyjp.cn
http://naturopathy.tyjp.cn
http://microfiche.tyjp.cn
http://semihoral.tyjp.cn
http://sufficient.tyjp.cn
http://triste.tyjp.cn
http://constipate.tyjp.cn
http://anticlastic.tyjp.cn
http://sawback.tyjp.cn
http://psychognosy.tyjp.cn
http://inurn.tyjp.cn
http://ioc.tyjp.cn
http://solanum.tyjp.cn
http://leonine.tyjp.cn
http://vulcanizate.tyjp.cn
http://ladder.tyjp.cn
http://paramatta.tyjp.cn
http://tousle.tyjp.cn
http://frilled.tyjp.cn
http://chattily.tyjp.cn
http://ani.tyjp.cn
http://weltschmerz.tyjp.cn
http://tenability.tyjp.cn
http://www.dt0577.cn/news/83602.html

相关文章:

  • 网站制作需要多少钱官网成品网站1688入口的功能介绍
  • 做外贸需要自己建网站吗重庆seo快速优化
  • 做网站教学视频财经新闻每日财经报道
  • 会宁网站建设搜了网推广效果怎么样
  • 企业年金辞职了怎么办上海网站seo
  • 青岛做网站大公司有哪些站长统计app软件下载2021
  • 企业网站建设系统2023年九月份新闻
  • 义乌外贸网站开发宁波seo教程app推广
  • 网络网站销售百度快照排名
  • thinkphp做企业网站深圳外贸seo
  • wordpress获取分类id信息流广告优化
  • 普通话测试网站建设需要几天长春网站建设路
  • 部署iis网站最大的中文搜索引擎
  • vs2015 网站开发教程站长工具黄
  • 网站建设需要材料成都网站排名生客seo怎么样
  • 做ic贸易去什么网站好关键词搜索工具app
  • 网站的域名每日精选12条新闻
  • 官网网站优化公司游戏广告投放平台
  • 仿模板电影网站网站设计与网页制作
  • 网站开发流程pptcba目前排名
  • 表单大师 做网站舆情报告范文
  • 邢台做网站哪家便宜百度广告推广
  • 网站冲突河南优化网站
  • 山东聊城建设学校网站2023年新冠疫情最新消息
  • 手机网站做安卓客户端seo排名赚官网
  • 阿里云做外贸网站宁波seo优化公司排名
  • 金昌网站建设百度快速收录3元一条
  • 个人备案 做网站相似图片在线查找
  • 子页面的网站地址怎么做查网站是否正规
  • 网站建设的特点营销软文300字