hooks 系列四:useRefs

本文详细介绍了React Hooks中的useRef,包括定义、特性、作用,并通过实例展示了如何使用useRef来保存可变值,解决函数组件中状态更新的问题。通过学习,你将掌握useRef在组件状态管理和实例属性保存方面的应用。
摘要由CSDN通过智能技术生成

快来加入我们吧!

"小和山的菜鸟们",为前端开发者提供技术相关资讯以及系列基础文章。为更好的用户体验,请您移至我们官网小和山的菜鸟们 ( https://xhs-rookies.com/ ) 进行学习,及时获取最新文章。

"Code tailor" ,如果您对我们文章感兴趣、或是想提一些建议,微信关注 “小和山的菜鸟们” 公众号,与我们取的联系,您也可以在微信上观看我们的文章。每一个建议或是赞同都是对我们极大的鼓励!

前言

这篇文章,我们主要目的是了解一下 useRefs 的使用.

useRefs

定义

useRef 返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数(initialValue)。返回的 ref 对象在组件的整个生命周期内保持不变。

const refContainer = useRef(initialValue)

我们都知道,React 已经提供了一个 API createRef,它的作用同样也是创建一个 ref,那么这个 useRefs Hook 出来的意义是什么呢?它们之间又有什么区别呢?

useRef 的特性

useRef 一个很重要的特性就是:useref 返回的 ref 对象是可变的。正如官网文档中所说,它像一个变量,像可以保存一个可变值的“盒子”。

我们已经知道的 createRef 返回的 ref 对象在每次渲染时都会返回一个新的引用,而 useRef 则返回的是相同的引用 也正如定义中所说,返回的 ref 对象在组件的整个生命周期内保持不变。这也是为什么 useRef 可以在其 .current 属性中保存一个可变值的重要原因。

可能这比较难以理解,那我们用一个例子来理解一下:

function about() {
   
  const [count, addCount] = useState(0)
  const refForUseRef = useRef()
  const refForCreateRef = createRef()

  if (!refForUseRef.current) {
   
    // 如果不存在则赋值
    refForUseRef.current = count
  }
  if (!refForCreateRef.current
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值