useRef作为React钩子的用法



我目前正在学习React/Hooks,我想知道它们之间有什么区别(如果有的话(:

const [myRef, _dummy] = useState({current: 0});
const myRef = useRef(0);

(永远不会使用_dummy(。

据我所知,无论我们选择什么声明,myRef都可以以完全相同的方式使用。

这是真的吗?如果是的话,useRef只是句法糖吗?

它们不等价。当您通过调用setState来更新状态时,您将触发一个重新应答器。但是,当您更新引用时,将不会有重新引用。这是因为refs是可变的,并且不与组件的状态绑定。

我假设您永远不会更改值(如伪变量所示(,在这种情况下,两种形式以及const myRef = {}在实践中是相同的,但在语义上是不同的。

在您给出的示例中,没有,没有区别

如果是,useRef只是一个句法糖吗?

不,有一个根本的区别,即调用_dummy(即设置状态(会导致渲染,而设置ref值则不会。

相关内容

  • 没有找到相关文章

最新更新