反应:useState()vs useRef()

时间:2020-03-08 21:57:55

标签: javascript reactjs react-hooks

我已经浏览过一次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个问题:

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

1 个答案:

答案 0 :(得分:1)

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

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