React: useState() vs useRef()



我已经浏览了一次React文档。

我试着在脑海中比较useState((和useRef((…

useState((和useRef((的共性:

  • 仅在功能组件中可用
  • 创建静态值–值在函数调用之间保持不变
  • 值是可变的
  • 范围在其功能组件内
  • 范围包括其功能组件中的其他挂钩

useState((和useRef((之间的差异:

  • useState触发重新渲染,useRef不触发
  • useRef可以引用子元素(通过"ref={}"(,useState不能
  • 对于子DOM元素,ref={}指代DOM元素本身
  • 对于子React组件,ref={}指的是子组件本身

…之前的堆栈溢出问题增加了:

  • useState异步更新其值,useRef同步更新

到目前为止,我有3个问题:

  1. 以上的共同点&差异是否正确
  2. 我还应该了解其他共同点或差异吗
  3. 从创建引用的组件(useRef+ref={}(,我可以同时获得&在子组件上设置值(是的,这样做可能明智,也可能不明智(

基本上,您的比较是正确的,但正如评论中已经提到的,它们有不同的用途。你只需要知道useRef基本上就是语法糖:

useRef((基本上是useState({current:initialValue}([0]

最新更新