Реагируйте: useState () против useRef () - PullRequest
0 голосов
/ 09 марта 2020

Я однажды прошел через React Docs.

Я пытаюсь сравнить useState () с useRef () в моем уме ...

Общие черты как для useState (), так и для useRef ():

  • Доступно только в функциональных компонентах
  • Создание значений c - значение сохраняется между вызовами функций
  • Значения могут изменяться
  • Области охвата внутри их функционального компонента
  • Область действия включает в себя другие хуки (use's) внутри своего функционального компонента

Различия между useState () и useRef ():

  • useState запускает повторный рендеринг, useRef нет.
  • useRef может ссылаться на дочерние элементы (через «ref = {}»), useState не может.
  • Для дочерних элементов DOM ref = {} относится к самому элементу DOM.
  • Для дочерних компонентов React ref = {} относится к самому дочернему компоненту.

… И этот предыдущий вопрос Stackoverflow добавляет:

  • useState обновляет его значение асинхронно, useRef обновляется синхронно.

Итак, у меня есть 3 вопроса:

  1. Верны ли вышеуказанные общие черты и различия?
  2. Любые другие общие черты или различия, которые я следует знать?
  3. Из компонента, который создает ссылку (useRef + ref = {}), могу ли я получить и установить значения для дочернего компонента (да, это может / не может быть целесообразно делать так)?

1 Ответ

1 голос
/ 09 марта 2020

В принципе, ваше сравнение корректно, но, как уже упоминалось в комментариях, они служат разным целям. Вам просто нужно знать, что useRef в основном это синтаксис сахар :

useRef () в основном useState ({current: initialValue}) [0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...