Ответ
RTK Query упрощает работу с API, предоставляя готовые инструменты для кэширования, инвалидации, оптимистичных обновлений и автоматической генерации хуков.
Ключевые преимущества:
- Автогенерация хуков – создает
useGetPostsQuery,useAddPostMutationи т.д. - Кэширование – автоматически управляет данными, избегая лишних запросов.
- Инвалидация –
invalidateTagsперезапрашивает данные при изменении. - Оптимистичные обновления –
onQueryStartedв мутациях позволяет мгновенно обновлять UI. - Минимум кода – не нужно писать редьюсеры, экшены, санки.
Пример:
// apiSlice.ts
const api = createApi({
endpoints: (build) => ({
getPosts: build.query<Post[], void>({
query: () => 'posts',
}),
addPost: build.mutation<Post, Partial<Post>>({
query: (body) => ({
url: 'posts',
method: 'POST',
body,
}),
}),
}),
});
// Компонент
const { data, isLoading } = useGetPostsQuery();
const [addPost] = useAddPostMutation();