Найти в Дзене

Должны ли крюки React возвращать массив или объект

Вы когда-нибудь задумывались о том, что возвращает React Hook? В большинстве случаев вы видите, что хуки возвращают массив, не так ли? Можем ли мы вернуть объект в React Hook? И в каких случаях мы это используем?

Когда мы используем typeof для проверки массива, мы получаем на выходе объект. Массивы - это объекты в JavaScript.

Массив и объект - это ссылки на память, в которой они хранят свое значение.

Поэтому два способа написания React Hooks действительны, он просто возвращает ссылку. Разница в том, как мы можем получить значение массива или возвращаемого объекта.

Получить значения из массива

Должны получить значения в определенном порядке

Переменные легко именовать любым именем, которое вы хотите

Получение значений из объекта

Должны получить значения с соответствующими полями объекта

Сложнее давать имена другим переменным

Использование

Использование возврата массива в случае:

Использование нескольких экземпляров хука в компоненте. Таким образом, мы можем гибко использовать любые имена переменных.

Вы знаете правильный порядок возвращаемого значения, например: [value, setValue].

Использование возврата объекта в случае:

Использование одного или двух экземпляров хука в компоненте. Поэтому нам не нужно переименовывать переменные из-за конфликта имен.

Вы не знаете правильный порядок возвращаемого значения, например [isLoading, hideLoading, showLoading] или [isLoading, showLoading, hideLoading].

Я рекомендую вам использовать хук для возврата массива. Если вы видите, что это не очень хорошо, то напишите это в object return.

Спасибо за прочтение. Надеюсь, эта статья будет полезной для вас. Если вы видите какие-то ошибки в статье, не стесняйтесь, дайте мне знать, я проверю ее еще раз и исправлю, если это необходимо.

Меня зовут Дэвид, я веб-разработчик. Я люблю технологии, и я буду делиться новыми статьями о веб-разработке, ReactJS и TypeScript. Вы можете прочитать больше здесь. Спасибо!