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

哈尔滨网页网站制作天津做网架公司

哈尔滨网页网站制作,天津做网架公司,自己的网站怎么做商城,备案域名出售是否违法概要 本文提供一个获取useState状态变化之前旧值的Hook方法usePrevious,以及该方法的基本实现思路, 实现包括TS版和普通JS版。 基本思路 usePrevious的核心原理,在于React Hooks的执行顺序和引用对象(ref)的持久化特…

概要

本文提供一个获取useState状态变化之前旧值的Hook方法usePrevious,以及该方法的基本实现思路, 实现包括TS版和普通JS版。

基本思路

usePrevious的核心原理,在于React Hooks的执行顺序和引用对象(ref)的持久化特性。

基本原理

初始阶段(页面加载):

  1. 组件挂载,useRef初始化一个ref对象,此时ref.curret 的值是undifined或传入的初始值;
  2. 组件渲染,usePrevious 返回undifined或传入的初始值;
  3. 组件渲染完成,执行监听函数useEffect,将ref.current跟新。

触发状态更新阶段:

调用setXX触发状态更新:

  1. 组件开始重新渲染;
  2. usePrevious再次执行,此时:useRef中的数据并未改变,因此返回旧值;所以在组件重新渲染阶段,可以取到旧值;
  3. 组件用新值完成渲染;
  4. 组件渲染完成后执行useEffect,更新ref.curret 。

代码实现

TS 版

import { useEffect, useRef } from "react";
export const usePrevious = <T>(value:T): T | undefined => {const ref = useRef<T>(value);useEffect(()=>{ref.current = value;}, [value]);return ref.current;
} 

JS版

import { useEffect, useRef } from "react";
export function usePrevious(value){const pValue = useRef(value);useEffect(()=>{pValue.current = value;}, [value]);return pValue.current;
}

结论

获取状态变化前的旧值,可以方便我们在普通的方法中,更好的监听响应式数据的变化,以便我们进行数据验证等操作。


文章转载自:

http://NB6J31wE.zfwjh.cn
http://4y6Oa4nW.zfwjh.cn
http://3XagxxU8.zfwjh.cn
http://baD61eQT.zfwjh.cn
http://9HSBgKbG.zfwjh.cn
http://LfwJwuKZ.zfwjh.cn
http://sCdw267R.zfwjh.cn
http://HBjUwV0P.zfwjh.cn
http://zTdMppGO.zfwjh.cn
http://D4HwAwZX.zfwjh.cn
http://miDpk0ic.zfwjh.cn
http://dzWGGh3D.zfwjh.cn
http://QZNtMvdM.zfwjh.cn
http://QJfNLIpF.zfwjh.cn
http://KvAvwOds.zfwjh.cn
http://3yKqm7zH.zfwjh.cn
http://CFfOIbZC.zfwjh.cn
http://78lC66JM.zfwjh.cn
http://xeYksyob.zfwjh.cn
http://rnOCYUTG.zfwjh.cn
http://FgO4z0sJ.zfwjh.cn
http://Ke7gDo7c.zfwjh.cn
http://Pnuijyr1.zfwjh.cn
http://LJE6wWTa.zfwjh.cn
http://I8jRiiiV.zfwjh.cn
http://HCOXUE12.zfwjh.cn
http://dyGs42Dm.zfwjh.cn
http://ACYJDOkD.zfwjh.cn
http://a6fHlDwP.zfwjh.cn
http://zIxCvgjP.zfwjh.cn
http://www.dtcms.com/wzjs/692864.html

相关文章:

  • 上海集团网站建设价格网页设计师女生工资
  • 自己服务器建设网站国际最新军事新闻
  • 有哪个网站是成都中科大旗做的如何提交网站地图
  • 哪个网站做免费小程序网站建设属于办公费吗
  • 网站空间购买800福建工程建设中心网站
  • 无法连接到wordpress站点网站设计 网站推广 网站优化
  • 朔州网站建设优化淘宝店铺头像logo制作
  • 做外贸网站需要注意些什么手续华大基因 建设公司网站
  • 北京电商网站开发多少钱企业免费网站建设
  • 城阳在线网站建设常德企业网站建设
  • 做网站用什么牌子电脑本地的天津网站建设
  • 天长网站开发.gs域名做网站怎么样
  • 英文网站建设方案详细方案discuz 旅游网站模版
  • 移动网站建设制作电子商务网站建设对毕业设计
  • 加强网站信息建设wordpress 添加百度统计
  • 太原手机网站建设wordpress 收费课程
  • 色块设计网站技能培训班有哪些课程
  • 永州做网站费用松北建设局网站
  • 网站开发流程 原型设计烟台网站建设优化
  • 先进网站长沙做网站的公司有哪些
  • 青岛网站建设哪家权威林芝seo
  • 周浦高端网站建设公司建设银行六安市分行网站
  • 360站长工具北京餐饮设计公司哪家好
  • 建设招标项目常挂网站有哪些常用的设计网站
  • 做pc端网站讯息企业网络推广计划书
  • 付费资料网站开发安徽省工程信息网官网
  • 什么是网站风格策划的重点建设部网站哪里可以报名考监理员
  • 中国免费网站建设建个企业网站收费
  • 做网站不用服务器如何做视频教程网站
  • 陵水网站建设公司免费开店的平台