Выбор оптимальных значений
staleTime и cacheTime зависит от специфики вашего приложения.staleTime: если ваши данные меняются довольно часто, вы можете установить staleTime на низкое значение (например, 1000 мс). Если данные меняются редко, можно использовать большое значение (например, 5 минут).cacheTime: опять же, все зависит от того, что это за данные и насколько активно они используются. Если данные постоянно запрашиваются, можно установить большое значение cacheTime. Однако, если данные редко используются, следует выбрать меньшее значение, чтобы освободить ресурсы. Нужно стараться балансировать между актуальностью данных и нагрузкой на сервер / пользовательское устройство.Что должно быть больше,
cacheTime или staleTime?Допустим, что вы задали
staleTime 5 минут, а cacheTime 2 минуты. Если пользователь вернется через 3 минуты, вы ожидаете, что у вас все еще будут свежие данные. А вместо данных пользователь увидит спиннер (или скелетон), так как все данные будут удаленны сборщиком мусора. Разумно задавать время cacheTime больше, чем время staleTime, чтобы избежать потери все еще свежих данных.Пример конфигурации.
Данная конфигурация минимизирует обращения к серверу. То есть подходит для редко меняющихся данных.
export const reactQueryConfig = {
defaultOptions: {
queries: {
staleTime: 1 * 60 * 60 * 1000, // 1 hour
cacheTime: 5 * 60 * 60 * 1000, // 5 hours
refetchOnmount: false,
refetchOnReconnect: false,
refetchOnWindowFocus: false,
},
},
};
@chulakov_dev