Skip to content

Instantly share code, notes, and snippets.

@pointofpresence
Created May 23, 2020 11:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pointofpresence/0a74299b1d13a285440e41f6f13388db to your computer and use it in GitHub Desktop.
Save pointofpresence/0a74299b1d13a285440e41f6f13388db to your computer and use it in GitHub Desktop.

Рефы и хук useRef

Pефы – это специальные атрибуты, доступные всем React-компонентам. Они позволяют создать ссылку на компонент (или HTML-элемент) после того, как он появится в DOM.

Хук useRef – это простой способ создавать рифы внутри функциональных компонентов. Он возвращает значение, которое можно привязать к любому элементу, чтобы на него можно было ссылаться.

С помощью такой ссылки можно изменять свойства элемент или вызывать его общедоступные методы (например, focus() у поля ввода).

function App() {
  const [query, setQuery] = React.useState("react hooks");
  // передаем хук дефолтное значение null
  const searchInput = useRef(null);

  function handleClearSearch() {
    // используем созданную ссылку в обработчике
    searchInput.current.value = "";
    searchInput.current.focus();
  }

  return (
    <form>
      <input
        type="text"
        onChange={event => setQuery(event.target.value)}
        ref={searchInput}
      />
      <button type="submit">Search</button>
      <button type="button" onClick={handleClearSearch}>
        Clear
      </button>
    </form>
  );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment