Вы когда-нибудь задумывались о том, что возвращает React Hook? В большинстве случаев вы видите, что хуки возвращают массив, не так ли? Можем ли мы вернуть объект в React Hook? И в каких случаях мы это используем?
Когда мы используем typeof для проверки массива, мы получаем на выходе объект. Массивы - это объекты в JavaScript.
Массив и объект - это ссылки на память, в которой они хранят свое значение.
Поэтому два способа написания React Hooks действительны, он просто возвращает ссылку. Разница в том, как мы можем получить значение массива или возвращаемого объекта.
Получить значения из массива
Должны получить значения в определенном порядке
Переменные легко именовать любым именем, которое вы хотите
Получение значений из объекта
Должны получить значения с соответствующими полями объекта
Сложнее давать имена другим переменным
Использование
Использование возврата массива в случае:
Использование нескольких экземпляров хука в компоненте. Таким образом, мы можем гибко использовать любые имена переменных.
Вы знаете правильный порядок возвращаемого значения, например: [value, setValue].
Использование возврата объекта в случае:
Использование одного или двух экземпляров хука в компоненте. Поэтому нам не нужно переименовывать переменные из-за конфликта имен.
Вы не знаете правильный порядок возвращаемого значения, например [isLoading, hideLoading, showLoading] или [isLoading, showLoading, hideLoading].
Я рекомендую вам использовать хук для возврата массива. Если вы видите, что это не очень хорошо, то напишите это в object return.
Спасибо за прочтение. Надеюсь, эта статья будет полезной для вас. Если вы видите какие-то ошибки в статье, не стесняйтесь, дайте мне знать, я проверю ее еще раз и исправлю, если это необходимо.
Меня зовут Дэвид, я веб-разработчик. Я люблю технологии, и я буду делиться новыми статьями о веб-разработке, ReactJS и TypeScript. Вы можете прочитать больше здесь. Спасибо!