我曾经浏览过React Docs。

我正在尝试将useState()与useRef()进行比较...

useState()和useRef()的共同点:


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


useState()和useRef()之间的区别:


useState触发重新渲染,useRef不触发。
useRef可以引用子元素(通过“ ref = {}”),而useState不能。
对于子DOM元素,ref = {}是指DOM元素本身。
对于子React组件,ref = {}是指子组件本身。


this previous Stackoverflow question添加:


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


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


以上共同点和差异正确吗?
我应该知道其他任何共性或差异吗?
我可以从创建引用的组件中(useRef + ref = {})来获取和设置子组件上的值(是的,这样做可能/不明智)?

最佳答案

基本上,您的比较是正确的,但是正如评论中已经提到的,它们具有不同的用途。您只需要知道useRef基本上是syntax sugar


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

09-11 07:43