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

延吉建设局网站wordpress门户加商城

延吉建设局网站,wordpress门户加商城,网站设计的逻辑结构,品牌建设成果在react中,当我们setState之后,若值发生变化,则会重新render当前组件以及其子组件 (默认情况下),在必要的时候,我可使用memo (class组件则对应shouldComponentUpdate、PureComponent)进行优化,来减少无效渲…

在react中,当我们setState之后,若值发生变化,则会重新render当前组件以及其子组件 (默认情况下),在必要的时候,我可使用memo (class组件则对应shouldComponentUpdate、PureComponent)进行优化,来减少无效渲染。memo是一个高阶组件,接受一个组件作为参数,并返回一个原组件为基础的新组件,而在memo内部,则会使用Object.is来遍历对比新旧props是否发生变化,以决定是否需要重新render。
在我们使用memo包裹子组件的时候,往往需要父组件配合使用useMemo,useCallback等,来缓存传给子组件props中的引用类型的值和方法 (function其实也是引用类型数据的一种,useCallback也是useMemo的一种特殊情况),因为对于react函数组件,其本身就是个render函数,每次re-render之后,都会重新执行此函数,而每次执行的时候就会产生一个新的函数作用域,因此默认每次都会创建一个新的变量,如果是引用类型,则会造成Object.is返回false,故而无法达到防止无效渲染的目的。此时我们需要在父组件传给子组件props的值的时候,缓存引用类型数据,来保证在依赖没有变化的情况下,始终返回同一个引用地址。

注意:只有在组件渲染发生了性能问题的时候,例如组件内容较为复杂,render过程比较慢,我们才使用memo (shouldComponentUpdate、PureComponent) 进行优化,否则你会得不偿失,恰得其反,反而造成性能的下降。因为本身在遍历props进行对比的过程,就需要一定的执行时间,如果组件较小,re-render的代价比对比props的代价更低,这时候我们就不适合使用memo (shouldComponentUpdate)。

useMemo、useCallback其实就是在更新阶段的时候,对比依赖是否发生变化,若发生变化则创建新的值,若没有,则返回旧的值,useMemo的update阶段源码如下:

function updateMemo<T>(nextCreate: () => T,deps: Array<mixed> | void | null,
): T {const hook = updateWorkInProgressHook();const nextDeps = deps === undefined ? null : deps;const prevState = hook.memoizedState;if (prevState !== null) {// Assume these are defined. If they're not, areHookInputsEqual will warn.if (nextDeps !== null) {const prevDeps: Array<mixed> | null = prevState[1];if (areHookInputsEqual(nextDeps, prevDeps)) {return prevState[0];}}}const nextValue = nextCreate();hook.memoizedState = [nextValue, nextDeps];return nextValue;
}
http://www.dtcms.com/a/420229.html

相关文章:

  • 高并发系统的高可用架构
  • 怎么自己开一个网站当当网网站开发计划和预算
  • 网站建设可行性报告范文网站建设 投资合作
  • 惠城网站建设有哪些做财经类新闻的网站
  • 有自己的网站做淘宝联盟号做吗房地产网站开发文档
  • 连云港公司企业网站建设网站创建人
  • C++ 并发编程最佳实践详解
  • 大型网站怎样做优化PHP国内优秀vi设计案例
  • 【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  • 山东建设和城乡建设厅注册中心网站驾校视频网站模板
  • 莱芜住房和城乡建设厅网站专业网站建设哪家好
  • 时间轴网站模板仁怀哪儿做网站
  • 装修公司网站asp源码郴州做网站seo
  • 会网站开发想找兼职免费ppt模板下载简约
  • 网站运营与推广电子商务网站建设策略
  • 沈阳网站建设德泰诺谁有qq网站开发资源群
  • 北京公司网站建设定广州英铭网站建设
  • 网站建设详细步骤建建建设网站公司电话
  • 公司网站搭建费用wordpress积分 充值
  • 手机网站布局教程几分钟弄清楚php做网站
  • 网站建设与维护的试卷网站建设里面包含什么语言
  • 【实验报告】华东理工大学随机信号处理实验报告
  • 个人做网站 需要学什么只是陕西网站建设
  • 数据结构入门 (四):双向通行的“高速公路” —— 深入双向循环链表
  • 西安做网站公司玖佰网络如何在google上免费推广
  • 个人域名备案完成了 可以改网站内容吗wordpress个人展示网站6
  • MySQL中SELECT 语句如何 INTO OUTFILE 保存数据到文件
  • 防火墙技术、模型、发展趋势、局限性及安全体系相关分析
  • 上海网站建设公司推荐排名网站建设中英语
  • 电脑从做系统怎么找回以前登录的网站wordpress网站合并