gpt4 book ai didi

reactjs - react : useState or useRef?

转载 作者:行者123 更新时间:2023-12-03 13:01:26 25 4
gpt4 key购买 nike

我正在“Hooks FAQ ”阅读有关 React useState()useRef() 的内容,我对一些似乎具有同时使用 useRef 和 useState 解决方案,我不确定哪种方式是正确的。

来自“Hooks 常见问题解答”about useRef() :

"The useRef() Hook isn’t just for DOM refs. The “ref” object is a generic container whose current property is mutable and can hold any value, similar to an instance property on a class."

使用useRef():

function Timer() {
const intervalRef = useRef();

useEffect(() => {
const id = setInterval(() => {
// ...
});
intervalRef.current = id;
return () => {
clearInterval(intervalRef.current);
};
});

// ...
}

使用useState():

function Timer() {
const [intervalId, setIntervalId] = useState(null);

useEffect(() => {
const id = setInterval(() => {
// ...
});
setIntervalId(id);
return () => {
clearInterval(intervalId);
};
});

// ...
}

两个示例都会有相同的结果,但哪个更好 - 为什么?

最佳答案

两者之间的主要区别是:

useState 会导致重新渲染,useRef 不会。

它们之间的共同点是,useStateuseRef都可以在重新渲染后记住它们的数据。因此,如果您的变量决定 View 层渲染,请使用 useState。否则使用 useRef

我建议阅读这篇文章article .

关于reactjs - react : useState or useRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56455887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com