因为 React.createRef() 每回返回的是不同的对象,不能保持引用
若把createRef写到全局,问题是,如果这个组件有两个,就会互相干扰这个ref,就会出问题啊
所以最好不要在函数组件中使用全局变量
所以才衍生出了useRef
useRef函数
- 一个参数,默认值
- 返回一个固定的对象,
{current: xxx}
- 它的改变,包括它的current的改变,不会引起重新执行函数组件 ```jsx import React, {useState, useRef, useEffect} from ‘react’;
export default function App(){ const [n, setN] = useState(10); const nRef = useRef(n);//初始化{current: 10} useEffect(()=>{ const timer = setInterval(()=>{ nRef.current—; setN(nRef.current); if(nRef.current === 0){ clearInterval(timer); } }, 500);
return ()=>{
clearInterval(timer)
}
}, []); return (