Список тегов для более удобного поиска постов
👉 Основные понятия
#компоненты
#jsx
#жизненныйциклкомпонента
#виртуальныйdom
#состояние
#обработкасобытий
#потокданных
#ключи
#формы
#рефы
#hoc
#рендерпропсы
#контекст
#порталы
#хуки
#concurrentmode
👉 Управление состоянием
#управлениесостоянием
#redux
#mobx
#recoil
👉 Работа с ошибками
#обработкаошибок
#предохранители
#отладка
#проверкатипов
#typescript
#строгийрежим
👉 Оптимизация
#оптимизация
#profiler
#ленивыекомпоненты
#purecomponent
👉 Тестирование
#тестирование
#jest
#testinglibrary
👉 Серверный рендеринг
#серверныйрендеринг
👉 Стилизация
#стили
#styledcomponents
#jss
#radium
#shadowdom
👉 Распространенные задачи
#валидацияформ
#роутинг
#обменданными
#rtkquery
👉 Прочее
#документация - материалы из официальной документации
#ссылки - полезные ссылки
#началоработы - базовые знания, необходимые для начала работы
#паттерны - хорошие практики работы с React
#примерыкода - реальные примеры кода для изучения
#важно - моменты, на которые нужно обратить внимание
#ошибки - частые ошибки новичков в React
#вопросы
#подкапотом - невидимая часть React
#подключение - подключение React, а также дополнительных пакетов
#инструменты - полезные инструменты для разработки
#доступность
#проект - организация файлов и другие вопросы уровня целого проекта
#api
#безопасность
#отложено - аспекты уже пройденных тем, временно отложенные
👉 Основные понятия
#компоненты
#jsx
#жизненныйциклкомпонента
#виртуальныйdom
#состояние
#обработкасобытий
#потокданных
#ключи
#формы
#рефы
#hoc
#рендерпропсы
#контекст
#порталы
#хуки
#concurrentmode
👉 Управление состоянием
#управлениесостоянием
#redux
#mobx
#recoil
👉 Работа с ошибками
#обработкаошибок
#предохранители
#отладка
#проверкатипов
#typescript
#строгийрежим
👉 Оптимизация
#оптимизация
#profiler
#ленивыекомпоненты
#purecomponent
👉 Тестирование
#тестирование
#jest
#testinglibrary
👉 Серверный рендеринг
#серверныйрендеринг
👉 Стилизация
#стили
#styledcomponents
#jss
#radium
#shadowdom
👉 Распространенные задачи
#валидацияформ
#роутинг
#обменданными
#rtkquery
👉 Прочее
#документация - материалы из официальной документации
#ссылки - полезные ссылки
#началоработы - базовые знания, необходимые для начала работы
#паттерны - хорошие практики работы с React
#примерыкода - реальные примеры кода для изучения
#важно - моменты, на которые нужно обратить внимание
#ошибки - частые ошибки новичков в React
#вопросы
#подкапотом - невидимая часть React
#подключение - подключение React, а также дополнительных пакетов
#инструменты - полезные инструменты для разработки
#доступность
#проект - организация файлов и другие вопросы уровня целого проекта
#api
#безопасность
#отложено - аспекты уже пройденных тем, временно отложенные
Redux Essentials 16. RTK Query. Создание слайса
RTK Query - это еще один уровень абстракции над абстракциями Redux, позволяющий инкапсулировать работу с API: методы получения/обновления/удаления данных, состояние выполнения запроса, синхронизация состояния на клиенте и на сервере, оптимистичные обновления клиентского стейта, кеширование и т.д.
При этом все, что связано с API, выносится в отдельный слайс. Если у нас есть в приложении несколько разных запросов к одному и тому же серверу (работа со статьями, уведомлениями) - все это будет в отдельном слайсе, и методы, и сами данные.
RTK Query предоставляет две основные функции:
-
-
Они находятся в пакете
Есть еще
Проект: https://codesandbox.io/s/redux-essentials-rtk-query-react-junior-lced2j?file=/src/features/api/apiSlice.js
Создание и добавление слайса
Слайс для API создаем в файле
Важно правильно подключить новый слайс в методе
Сам сгенерированный редьюсер находится в
Кроме того, нужно добавить миддлвар
#redux #rtkquery #обменданными #управлениесостоянием #документация #примерыкода
RTK Query - это еще один уровень абстракции над абстракциями Redux, позволяющий инкапсулировать работу с API: методы получения/обновления/удаления данных, состояние выполнения запроса, синхронизация состояния на клиенте и на сервере, оптимистичные обновления клиентского стейта, кеширование и т.д.
При этом все, что связано с API, выносится в отдельный слайс. Если у нас есть в приложении несколько разных запросов к одному и тому же серверу (работа со статьями, уведомлениями) - все это будет в отдельном слайсе, и методы, и сами данные.
RTK Query предоставляет две основные функции:
-
createApi
для создания слайса;-
fetchBaseQuery
- небольшая утилитарная обертка вокруг метода fetch
Они находятся в пакете
@reduxjs/toolkit/query
- это базовая версия библиотеки.Есть еще
@reduxjs/toolkit/query/react
- те же самые функции специально для React. Они автоматически генерируют хуки на базе созданных методов. Мы будем использовать именно этот пакет.Проект: https://codesandbox.io/s/redux-essentials-rtk-query-react-junior-lced2j?file=/src/features/api/apiSlice.js
Создание и добавление слайса
Слайс для API создаем в файле
features/api/apiSlice.js
. export const apiSlice = createApi({Помимо прочих настроек метод
reducerPath: 'api',
// ...
})
createApi
принимает поле reducerPath
, в котором нужно указать, где именно в общем state
будут лежать данные, полученные из API. По умолчанию значение этого поля api
- то есть данные нужно будет извлекать из state.api
.Важно правильно подключить новый слайс в методе
configureStore
. Чтобы не ошибиться, используем в качестве названия поля свойство apiSlice.reducerPath
.Сам сгенерированный редьюсер находится в
apiSlice.reducer
.Кроме того, нужно добавить миддлвар
apiSlice.middlewar
для кеширования данных. Сделать это можно в методе configureStore
в настройке middleware
. Она принимает функцию, которой в качестве аргумента передается метод getDefaultMiddleware
. Вернуть нужно обновленный массив миддлваров, поэтому вызываем этот метод и добавляем в него новый миддлвар.#redux #rtkquery #обменданными #управлениесостоянием #документация #примерыкода
👍4