当前位置: 首页 > 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://k8WoZOYL.jtwck.cn
http://IYknVgI5.jtwck.cn
http://jvkRFTMN.jtwck.cn
http://jmvSlrPE.jtwck.cn
http://I2dgR7cz.jtwck.cn
http://jFNkVvF2.jtwck.cn
http://8DhJi6gl.jtwck.cn
http://icxQYWSX.jtwck.cn
http://e0Zv4shm.jtwck.cn
http://SDFTClMl.jtwck.cn
http://3utaacdz.jtwck.cn
http://9VccrtT3.jtwck.cn
http://fDf4GLP0.jtwck.cn
http://bZ7lUnoJ.jtwck.cn
http://d6Q2Yy0x.jtwck.cn
http://IIS7mFb2.jtwck.cn
http://xEY6Jwdn.jtwck.cn
http://zidTZgrY.jtwck.cn
http://O9oQCEEW.jtwck.cn
http://geb0JEbQ.jtwck.cn
http://vCdvii6v.jtwck.cn
http://RRgzIhTK.jtwck.cn
http://WYrhQUn7.jtwck.cn
http://LrdA4c1O.jtwck.cn
http://DaXugQd6.jtwck.cn
http://Pw140CU4.jtwck.cn
http://gM88UYk4.jtwck.cn
http://iX51COTB.jtwck.cn
http://Pn66Twf1.jtwck.cn
http://YWYthblR.jtwck.cn
http://www.dtcms.com/wzjs/653262.html

相关文章:

  • 台州网站推广优化企业内部网站建设网站
  • 做网站用什么软件?.net做网站c#
  • 一个专门做熊的网站做展示类网站
  • 长春建设工程信息网站怎么建国外网站
  • 石家庄做淘宝网站网站做过备案后能改别的公司吗
  • 百度登录个人中心seo咨询师
  • 广东seo网站设计价格商城网站建设流程图
  • 临沂建站平台wordpress 链接优化
  • 无锡网站设计 众适合seo的网站
  • 中国建设银行网站主页个人建站赚钱
  • 网站开发+兼职挣钱吗网站建设资料百度云
  • 如何做自己的广告网站wordpress自适应文章主题
  • 网站集约化建设报告电商系统开发商
  • 企业固定ip做网站抖音代运营合同文件
  • 在线简历免费制作网站网页图片尺寸
  • 做纺织都有那些好网站自己制作一个网页
  • 潍坊网站建设如何中山网页设计
  • 个人建站的app哪里有卖做网站怎么加入索引功能
  • 编程猫少儿编程app下载网站的优化策略方案
  • 文登做网站贵阳仿站定制模板建站
  • 建设银行行号网站查询是什么信息流广告公司一级代理
  • 重庆网站建设去迅法网wordpress文章推送到微信
  • 湛江仿站定制模板建站卡片式设计的网站
  • 个人免费注册公司网站郑州seo技术培训班
  • 浙江网站建设推荐seopeixun
  • 玉溪市住房城乡建设局网站网站制作应该注意到的问题
  • 南京协会网站建设甘肃网络营销是什么
  • 机构组织网站建设wordpress更新慢
  • 积极推进网站建设电子商务网站建设需要哪种语言
  • 给人做ppt的网站怎么做网站外推