我已经浏览了一次React文档。
我试着在脑海中比较useState((和useRef((…
useState((和useRef((的共性:
- 仅在功能组件中可用
- 创建静态值–值在函数调用之间保持不变
- 值是可变的
- 范围在其功能组件内
- 范围包括其功能组件中的其他挂钩
useState((和useRef((之间的差异:
- useState触发重新渲染,useRef不触发
- useRef可以引用子元素(通过"ref={}"(,useState不能
- 对于子DOM元素,ref={}指代DOM元素本身
- 对于子React组件,ref={}指的是子组件本身
…之前的堆栈溢出问题增加了:
- useState异步更新其值,useRef同步更新
到目前为止,我有3个问题:
- 以上的共同点&差异是否正确
- 我还应该了解其他共同点或差异吗
- 从创建引用的组件(useRef+ref={}(,我可以同时获得&在子组件上设置值(是的,这样做可能明智,也可能不明智(
基本上,您的比较是正确的,但正如评论中已经提到的,它们有不同的用途。你只需要知道useRef
基本上就是语法糖:
useRef((基本上是useState({current:initialValue}([0]