просто сохранение в памяти
Ещё и данных с сервера... Разве это не обязанность сервера кэшировать то, что он отдаёт клиенту?
Или не туда думаю?
Под сервером грубо называю связку бд и апишки
Тебе нужны данные одинаковые в разных местах. Нужны - делаешь запрос. Либа делает так, чтобы данные запрашивались один раз, в остальных случаях будут получены те же самые сразу. Если обновятся - обновятся сразу везде. Вокруг этого - разные стратегии обновления и кэширования
Хоспаде... и для этого библиотека отдельная понадобилась? Может, я не шарю, конечно, но, по-моему, кэшировать можно по хэшу, составленному из одной единицы данных (например): не совпадает — обновляем, совпадает — не трогаем
Ты что-то не так понял. Что с чем ты решил сравнивать?
Ты читал раздел motivation на первой странице доки?
А для Pinia нужна отдельная либа? За день пишется тоже
Прилетает json: { "name": "Vasya" } Записали его в стор. Прилетает второй раз тот же самый — мы стор уже не обновляем, потому что json'ы эквивалентны. Это кэширование или нет?
Запросили Записали его в стор Он там уже есть Используем то что есть, не запрашиваем второй раз Это кеширование
Хорошо. Поставили условный таймер на 2 минуты, пока в течение 2 минут что-то есть, не отправляем запрос, но, допустим, на сервере name изменился, а мы показываем старый. Тогда, получается, габелла?
> на сервере name изменился, а мы показываем старый Это не общий случай, это узкий кейс, когда на сервере что-то поменялось без участия текущего клиента И таймеров никаких ненадо (почти никогда)
Для каких кейсов это может быть полезно, если мы уже работаем с сервером, и нам надо получать актуальные данные?
Когда в приложении больше выводятся данные с сервера в разных местах, чем манипулируют данными. Это позволяет в любом месте приложения, где нужны данные с бека, просто запрашивать их с "дай данные", как будто больше они нигде не нужны. И обновлять их не думая о том, что они используются в разных местах с разными стратегиями обновления. Без этого либо данные каждый раз запрашиваются заново и независимы, либо надо писать велосипед со стором, который у каждого будет свой и просто реализовывать те же функции
В общем случае если мы их получили и они не менялись на текущем клиенте - то они актуальные. Это значит то что запросить мы их можем один раз и больше не запрашивать. Если на текущем клиенте произойдёт какое то взаимодействие с юзером в результате которого эти данные поменяются, то мы их естественно обновим. Вот для таких базовых кейсов и полезно, ничего особенного, цель просто не делать лишние запросы, и для этой цели используем готовый инструмент вместо того чтобы велосипедить и сосредотачивать своё внимание на этих нюансах, тем более в своём прикладном коде
Обсуждают сегодня