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

石狮网站建设网络广告策划

石狮网站建设,网络广告策划,泰州外贸网站设计,做网站设计的广告公司前言 在构建现代 React 应用时,性能优化是一个关键考虑因素。随着组件的复杂性增加,合理管理状态和副作用变得尤为重要。React 提供了多个工具来帮助开发者优化组件性能,其中最常用的包括 useEffect、useCallback、useMemo 和 React.memo。这…

前言

在构建现代 React 应用时,性能优化是一个关键考虑因素。随着组件的复杂性增加,合理管理状态和副作用变得尤为重要。React 提供了多个工具来帮助开发者优化组件性能,其中最常用的包括 useEffect、useCallback、useMemo 和 React.memo。这些 API 各自有着不同的用途和机制,但它们的目标一致:通过有效地缓存和副作用,提升应用的响应速度和用户体验

概述

useEffect:

useEffect(setup, dependencies?)

参数

setup是一个函数,称之为副作用函数,在函数内可以放置要执行的操作,同时需要返回一个清理(cleanup)函数

dependencies是一个可选的数组:

  • dependencies没有时:组件初始化渲染和更新时,setup函数都会执行
  • dependencies是一个空数组时:setup函数只执行一次;
  • dependencies中放置依赖项时:在每次依赖项变更重新渲染后,React 将首先使用旧值运行 cleanup 函数(如果你提供了该函数),然后使用新值运行 setup 函数。(先清理再重新运行)

返回值

useEffect返回undefined

useCallback:

useCallback(function,dependencies)

参数:

function

1、定义:想要缓存的函数

2、特点:

  • 可以接受任何参数并返回任何值
  • React只会把这个函数返回给你,而不是直接调用!!(由你自己决定何时调用)
  • 进行下一次渲染时,dependencies没有变化,则funtion返回相同的函数;若有变化,React将新传入的函数缓存以便后续使用
dependencies

1、定义:有关是否更新function的所有响应值的一个列表

2、特点:

  • 响应式值包括 props、state,和所有在你组件内部直接声明的变量和函数。
  • 依赖列表必须具有确切数量的项,并且必须像 [dep1, dep2, dep3] 这样编写
  • React 使用 Object.is 比较每一个依赖和它的之前的值。

返回值:

在初次渲染时,useCallback 返回你已经传入的 function 函数

在之后的渲染中, 如果依赖没有改变,useCallback 返回上一次渲染中缓存的 function 函数;否则返回这一次渲染传入的 function。

useMemo

const cachedValue = useMemo(calculateValue, dependencies)

参数:

calculateValue

1、定义:要缓存计算值的函数

2、特点:

  • 没有任何参数,可以返回任意类型
  • 首次渲染时调用该函数。之后的渲染中,dependencies不变,React返回相同值;否则,再次调用函数并返回最新结果,并缓存结果供下次使用
dependencies

同useCallback的返回值特点一样

返回值:

在初次渲染时,useMemo 返回不带参数调用 calculateValue 的结果。

在接下来的渲染中,如果依赖项没有发生改变,它将返回上次缓存的值;否则将再次调用 calculateValue,并返回最新结果。

memo

const MemoizedComponent = React.memo(MyComponent);

参数

  • 接受两个参数:一个组件和一个可选的比较函数。

返回值

  • 返回一个新的组件,只有在 props 发生变化时才会重新渲染。

原理

useEffect

该Hook函数身并不缓存任何值或对象,它通过控制副作用的执行时机和频率来优化 React 应用的性能、来用于处理副作用,例如数据获取、订阅和手动操作 DOM。每当依赖项变化时,useEffect 会执行指定的回调函数。

useCallback

useCallback 通过缓存函数的引用,避免在每次渲染时重新创建函数,从而减少不必要的子组件渲染。

useMemo

useMemo 缓存计算的结果,避免每次渲染时重复计算开销大的值。

memo

React.memo不是一个Hook函数,而是一个高阶组件。它对组件的 props 进行浅比较,如果 props 没有变化,则返回先前的渲染结果,避免重新渲染。

扩展:

memo一般可以分别和useMemo、useCallback结合使用,useMemo和useCallback可以控制作为prop传入子组件中的函数或者值不变,此时包装在memo中的组件因传入prop不变而返回先前的渲染结果,避免重复渲染。

http://www.yidumall.com/news/39262.html

相关文章:

  • 垂直 网站开发怎么查百度竞价关键词价格
  • xyz溢价域名最好的网站可以免费推广的平台
  • 网站开发属于什么岗位seo的全称是什么
  • 松江网站制作搜索引擎营销的流程
  • 湛江做网站的有哪些友情链接软件
  • 做纺织机械的网站域名火狐搜索引擎
  • 乌鲁木齐网站建设查询网入口
  • 重庆做网站优化推广的公司搜索风云排行榜
  • 网站建设所需基本资料佛山网站建设技术托管
  • 泉州网站设计哪家公司好百度小说搜索风云榜
  • 做商城网站需要什么资质seo模拟点击有用吗
  • 一起作业网站英语作业怎么做营销网站优化推广
  • 齐诺网站建设东莞网站建设做网站香飘飘奶茶
  • 手机网站比例尺寸aso排名
  • 怎么用dw做博客网站郑州seo外包平台
  • 哪个浏览器可以做网站澎湃新闻
  • 牡丹江建设银行网站百度首页推广
  • 中国义乌网黑帽seo365t技术
  • 石家庄网站制作公司排名前十北京seo网站管理
  • 中国移动的网站模板关键词排名优化易下拉排名
  • 住建网站需多少钱中国销售网
  • 秦淮html5响应式网站精准推广
  • 广东网站建设方便线上推广平台
  • 为什么网站经常被攻击张家港seo建站
  • 做网站用哪种代码比较好推广晨阳seo顾问
  • 服务器怎样做网站呢巨量算数数据分析
  • html5网站优点北京网站seo服务
  • 做网站营业执照经营范围怎么填写宁波seo网络推广
  • 低价网站建设新闻怎么自己做一个小程序
  • 电子商务网站开发技术无货源电商怎么做