Използването на персонализирани Хуки в React се установи като гениален подход за абстракция на повтаряща се логика и подобряване на четимостта и поддържаемостта на вашите компоненти. В този урок ще научите чрез примера "useJsonFetch", как да създадете свои собствени Хуки, които са специално предназначени за извличане на JSON данни от сървър. Влязохме директно в материята.

Основни изводи

  • Персонализираните Хуки са прости функции, които използват React Хукс.
  • Те позволяват повторното използване на логика между няколко компонента.
  • Един персонализиран Хук може да управлява няколко състояния като зареждане, данни и грешка.
  • Структурата и имплементацията на персонализиран Хук са прости и лесни за разбиране.

По стъпково ръководство за създаване на Хука useJsonFetch

Основно размисъл

Преди да напишете своя собствен Хук, е важно да дефинирате функционалността, която ви трябва. В този случай искате да създадете Хук, който извлича JSON данни от сървър. Ние наричаме нашия Хук "useJsonFetch". За да разберете как да го имплементирате, първо разгледайте как се използва useJsonFetch в компонент.

Собствени хуци в Реакт: Създайте хук за използване на JSON Fetch

Извиквате Хука и предавате URL адреса, от който искате да извлечете JSON данните. Хукът ще бъде отговорен за извличането на данните, както и за обработката на състоянията на зареждане и грешка.

Имплементация на useJsonFetch

За да имплементирате персонализирания Хук, създайте нов файл, започващ с "use", за да отговаряте на конвенциите на React. Името на файла ще бъде useJsonFetch.js.

В този файл създайте функция, която приема URL адреса като параметър. В функцията дефинирайте състоянията за данни, грешка и зареждане.

Тук данните започват като undefined, грешката също и зареждането започва с true, за да покаже състоянието на зареждане. Това е заради начина, по който JavaScript обработва асинхронни операции.

Използване на useEffect

В рамките на Хука използвате useEffect, за да стартирате операцията за извличане, когато компонентът се монтира. Уверете се, че актуализирате състоянието на зареждане съответно.

С await първо извиквате URL адреса с fetch. Тъй като fetch връща Promise, можете да изчакате отговора с await. След като получите отговора, преобразувате данните в JavaScript обект с.json().

Ако възникне грешка, я обработвате с try-catch и задавате състоянието на грешка. Независимо дали заявката е била успешна или е възникнала грешка, се уверете, че задействате зареждането на false, когато отговорът е получен.

Собствени хуки в Реакт: Създай хука useJsonFetch

Връщане на Хук

В края на краищата връщате състоянията данни, грешка и зареждане като обект, за да бъдат налични за компонента, който го извиква.

Използване на Хук в компонента

Сега, след като сте създали Хука, можете да го използвате във вашата компонента. Импортирайте useJsonFetch във вашата компонента и използвайте деструктурирането, за да получите стойностите.

След това можете да имплементирате индикатор за зареждане, като проверите зареждането и да покажете данните, които сте извлекли, когато те са налични.

С използването на useJsonFetch можете да запазите логическото разделяне между извличането на данни и UI логиката, което значително подобрява поддръжката на вашия код.

Заключение относно създаването на персонализирани Хуки

Създаването на персонализирани Хуки е един лесен, но ефективен процес, който ви помага да организирате вашия код. Можете да обвийте повторно използваема логика и да я използвате във всяка компонента, която изисква същата функционалност. Чрез използването на персонализирани Хуки можете също така да разделите мрежовия заявка и реакцията на зареждане или грешни състояния от показването на данните.

Резюме

Със свой Хук като useJsonFetch научаваш как да управляваш асинхронни извличания на данни в React. Това значително подобрява повторното използване и структурата на вашия код. Видяхте как можете да създадете проста структура, за да извличате JSON данни и да управлявате различните състояния ефективно.