使用useState能让函数组件拥有状态,状态拥有不变性,它在组件前后两次渲染中相互独立。使用useRef能为组件创建一个可变的数据,该数据在组件的所有渲染中保持唯一的引用,所以对它取值始终会得到最新的值。下面是useRef的用法,分析浏览器打印的结果。
单击按钮,在浏览器控制台上count的打印结果为0,ref.current的打印结果为1。由此可以知道,在setTimeOut回调函数中拿到了ref.current最新的值。