博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React hooks - Ref 使用实例
阅读量:4098 次
发布时间:2019-05-25

本文共 1326 字,大约阅读时间需要 4 分钟。

  • useRef 返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数(initialValue)。返回的 ref 对象在组件的整个生命周期内保持不变。
  • useRef() ,它可以很方便地保存任何可变值,其类似于在 class 中使用实例字段的方式

1.获取state的旧值

  • demo
import React,{
useState,useRef,useEffect} from "react";function Example () {
const [count, setCount] = useState(0); const usePrevious = (value)=> {
const ref = useRef() useEffect(() => {
ref.current = value }) return ref.current } const previousCount = usePrevious(count); console.log(previousCount, count, '之前的状态和现在的状态') return (
{
count}
)}export default Example

2.异步回调中获取state最新的值

  • 在异步回调中获取最近的value值,用 一个 ref 来保存它,修改它,并从中读取
  • demo
import React,{
useState,useRef} from "react";function Example () {
const [count, setCount] = useState(0); const ref = useRef(0) function handleAlertClick () {
setTimeout(() => {
console.log(`最新值:${
ref.current}`) console.log(`非最新值:${
count}`); }, 3000) } function increment () {
const newCount = count + 1; setCount(newCount) ref.current = newCount } return (
{
count}
)}export default Example
  • 请记住,当 ref 对象内容发生变化时,useRef 并不会通知你。变更 .current 属性不会引发组件重新渲染。如果想要在 React 绑定或解绑 DOM 节点的 ref 时运行某些代码,则需要使用回调 ref 来实现

参考

转载地址:http://xfqii.baihongyu.com/

你可能感兴趣的文章
【Python】pymysql模块处理Mysql数据库
查看>>
【Python爬虫】使用urllib.request下载已知链接的网络资源
查看>>
Fiddler在PC/台式对Android进行抓包
查看>>
【Python爬虫】爬取微信公众号文章信息准备工作
查看>>
【Python爬虫】微信公众号历史文章和文章评论API分析
查看>>
【Python】Python简介和Python解释器
查看>>
多任务场景下单线程异步多线程多进程
查看>>
【Python】单线程异步多线程多进程实例
查看>>
【Python爬虫】requests与urllib库的区别
查看>>
【教育】世界上最伟大的25个教育法则
查看>>
【测试工具】在linux测试环境安装bug管理工具禅道
查看>>
【测试工具】在linux测试环境访问禅道数据库
查看>>
【Python】提升Python程序性能的好习惯2
查看>>
【工具】SecureCRT安装和注册
查看>>
【工具】FTP软件FileZilla下载和连接服务器
查看>>
【Python】random模块生成多种类型随机数
查看>>
【债券】可转换债券基本概念
查看>>
【股票】融资融券基本概念
查看>>
【性能测试】性能测试的基础理论
查看>>
【性能测试】性能测试的基本流程
查看>>