реагировать на пользовательские хуки против обычных функций, в чем разница - PullRequest
2 голосов
/ 09 февраля 2020

Я пытаюсь обернуть голову вокруг пользовательских крючков. Я понимаю нормальные хуки, которые просто хороши, но мой вопрос: при написании пользовательского хука, в чем разница между этим и нормальной функцией? Я имею в виду, почему бы не назвать ее нормальной функцией, а не вызывать что-то вроде use *

Ответы [ 3 ]

1 голос
/ 09 февраля 2020

Из React документы :

Пользовательский Hook - это функция JavaScript, имя которой начинается с «use» и может вызывать другие Hooks. [...] Его имя всегда должно начинаться с «использования», чтобы вы могли сразу увидеть, что к нему применимы правила хуков .

Так зачем определять пользовательские Хуки со специальным префиксом именования «use»?

1.) Он сообщает потребителям, что эти функции предназначены для использования с React и подчиняются неявному контракту (вышеупомянутые правила).

2.) У вас может быть поддержка инструментов, которая проверяет и применяет эти правила. Например, eslint-plugin-react-hooks использует heuristi c, что предполагает функцию, начинающуюся с префикса «use» и заглавной буквы после Hook.

0 голосов
/ 09 февраля 2020

React Hooks (пользовательские или не пользовательские) должны начинаться с префикса use. Кроме того, согласно документации React:

1) Хуки должны вызываться из кода React, а не из обычных функций JS. Следовательно, область действия Hooks ограничена миром кода React и имеет больше возможностей для работы с кодом React. Вместо JS обычные функции могут использоваться во всех приложениях, но в соответствии с рекомендациями кода реагирования код более согласован с синтаксисом реакции.

2) В компонентах на основе классов хуки не будут работать, но будут работать регулярно функции будут.

3) В обычных функциях JS вы не можете получить доступ к useState, useEffect, useContext et c. но реагировать на пользовательские крючки я могу.

0 голосов
/ 09 февраля 2020

Пользовательский хук зависит от еще одного хука. По своей сути React-хуки предназначены для использования в методе рендеринга компонента. Вы получите предупреждение, если попытаетесь использовать крюк в другом месте. Пользовательские хуки придерживаются того же соглашения, что и встроенные хуки, потому что они должны использоваться таким же образом. Префикс use - это просто соглашение для определения подключаемых функций, которые обычно вызываются в самом верху метода визуализации компонента.

Вы можете называть свою подключаемую функцию как угодно, но, как я уже говорил, вы получите предупреждение от React, если оно используется вне метода рендеринга.

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