Встречается на собеседованиях • сегодня

Как решать проблемы с кешированием в RTK

В RTK Query проблемы с кешированием чаще всего возникают из-за неверных тегов или отсутствия инвалидации. Вот основные подходы:

  1. Теги (tags) - помечайте данные тегами для автоматической инвалидации:
js
// В API
tagTypes: ['Posts'],
endpoints: (builder) => ({
  getPosts: builder.query({
    query: () => '/posts',
    providesTags: ['Posts']
  }),
  addPost: builder.mutation({
    query: (post) => ({
      url: '/posts',
      method: 'POST',
      body: post
    }),
    invalidatesTags: ['Posts']
  })
})
  1. Ручная инвалидация через invalidateTags:
js
dispatch(api.util.invalidateTags(['Posts']))
  1. Параметры кеширования - настройте keepUnusedDataFor и refetchOn... в API:
js
// В createApi
keepUnusedDataFor: 30, // время в секундах
refetchOnMountOrArgChange: true
  1. Принудительный рефетч через refetch() из хука запроса

Для сложных случаев используйте api.util.selectInvalidatedBy для точного контроля инвалидации.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы