в основном это просто велосипед - мы пишем свое собственное решение, которое делает то же самое, что и пиния, но при этом:
- оно не унифицировано, нет единого апи, которое диктует формат определения новых сторов, формат описания computed’ов, формат функций и общее взаимодействие со стором
можно написать `export const a = ref(1); export const b = computed(() => a.value * 2);
а можно `const a = ref(1);
export function useX() { const b = computed(() => a.value * 2);
return { a, b }; }
можно для каждого свойства заводить readonly версию и функцию для его обновления а можно и не заводить
и все это нужно проговаривать с командой и оно ничем не диктуется, кроме как негласным соглашением
это можно решить через свой собственный апи (aka defineStore), но это буквально путь к “а давайте напишем свою пинию” (только она будет хуже с вероятностью 99%)
-
если идем по пути собственного апи, то на это еще и тесты нужно писать, выносить в пакет или как-то обособлять в коде, что, опять же, занимает лишнее время и силы, при этом дает сомнительный результат;
-
все это чудо будет жить в памяти перманентно, как только инициализируется модуль, в отличие от пинии, которая лениво инициализирует сторы при первом вызове, поэтому если в приложении будет 5 таких сторов, то все они будут инициализироваться прямо при старте приложения, хотя по факту может быть нужен только один из них;
-
все эффекты в сторе уже живут в своем скоупе, который можно при желании уничтожить, со своим стором на коленке такого не будет, и все эффекты будут просто висеть в памяти вечно; например, если тебе понадобится добавить вотчер, то придется это делать в корне модуля, а значит этот вотчер будет жить вечно и у тебя нет над ним контроля (ручное управление через stop() не считаем за централизованный контроль);
-
все сторы в пинии уже сгруппированы и их можно найти в одной общей карте, со своими отдельными сторами, раскиданными по модулям, так не получится;
-
HMR по дефолту не будет точечно обновлять стейт, он будет его пересоздавать целиком;
-
система плагинов (удобно писать всякие LS синхронизации и подвязываться на жизненный цикл сторов);
-
всякие девтулзы и тулинг (лично для меня это околонулевой бонус, но факт его наличия отрицать нельзя)
при этом плюсы от своего стора только в том, что “ну оно пишется легко и весит меньше”``