Итоги
В этом уроке вы узнали, что:
- Реф создаётся через
useRef(null)и передаётся элементу какref={inputRef}. Когда элемент оказывается на странице, React кладёт его вinputRef.current, и обработчики и эффекты могут вызывать его методы, напримерinputRef.current.focus(). - Реф может хранить любое значение от одной отрисовки к другой, а изменение
ref.currentне вызывает новую отрисовку. Это место для того, что нужно только вашему коду, например для id интервала. То, что показывает страница, должно лежать в состоянии. - Ваш собственный хук — это функция, имя которой начинается с
useи которая вызывает другие хуки. Он делится между компонентами кодом, а не состоянием: у каждого компонента, который его вызывает, оно своё. Хук без JSX лежит в файле.js. useLocalStorage(key, initialValue)работает какuseStateи запоминает значение вlocalStorage.useFetch(url)загружает файл и возвращает{ data, loading, error }.- Правила хуков: вызывайте их только на верхнем уровне компонентов и хуков, никогда в условиях, циклах и обработчиках, и всегда в одном и том же порядке. Ранний возврат делайте только после всех хуков.
В следующем уроке, «Итоговый проект», вы примените весь курс в приложении с карточками для заучивания слов и узнаете, как создавать приложения на React на своём компьютере.
Но сначала немного практики: билет на фестиваль с вашим именем, которое приложение запоминает, и кнопка, которая ставит курсор в поле имени. useLocalStorage.js — хук, который вы написали, он готов к использованию.
Задание
- 1
Сделайте так, чтобы приложение запоминало имя: вместо
useStateиспользуйтеuseLocalStorageизuseLocalStorage.jsс ключомticketName. - 2
Клик по «Изменить имя» ставит курсор в поле: передайте полю реф и вызовите его
focus()вhandleEdit.