Skip to main content

Які переваги дає центральний стор?

Основні переваги центрального стора


1. Єдине джерело правди (Single Source of Truth)

Усі важливі дані зберігаються в одному місці. Компоненти не тримають копій стану - вони читають і змінюють саме стор.

Це виключає невідповідності:

  • немає різних версій стану
  • немає розбіжностей між компонентами
  • усі дивляться в одне й те саме сховище

2. Передбачуваність змін

У сторах зміни проходять за певними правилами:

  • Vuex → через mutations/actions
  • Pinia → через actions

Це означає:

  • неможливо змінити стан "випадково"
  • усі зміни відстежуються
  • легше знаходити баги

3. Зручна комунікація між компонентами

Стор вирішує проблему props drilling:

App → Layout → Page → ComponentA → ComponentB

Замість складного прокидування даних:

js
const cart = useCartStore()

Будь-який компонент (будь-якого рівня вкладеності) може отримати доступ до стану одразу.


4. Глобальний стан доступний у будь-якому місці застосунку

Приклади:

  • поточний користувач
  • токен авторизації
  • налаштування теми (light/dark)
  • кошик товарів
  • поточні фільтри
  • сповіщення

Будь-який компонент у будь-який час може отримати ці дані.


5. Покращена структура й архітектура застосунку

Стор дозволяє розділити застосунок на логічні модулі:

  • authStore
  • cartStore
  • productStore
  • settingsStore

Це допомагає тримати логіку організованою.


6. Підтримка DevTools

Vue DevTools показує:

  • зміни стора
  • які actions викликані
  • які дані змінилися
  • історію мутацій (Vuex)

Це величезна допомога у налагодженні.


7. Централізована бізнес-логіка

Стор дозволяє винести:

  • отримання даних
  • валідацію
  • обробку помилок
  • кешування

в одне місце → зручно тестувати і повторно використовувати.


8. Підтримка SSR (серверного рендерингу)

Pinia і Vuex вміють працювати в режимі SSR (Nuxt). Це важливо для SEO і швидкості завантаження.


Додаткові переваги (часто запитують)

Легше тестувати

Стор - це звичайні функції (actions), їх дуже просто покривати тестами.

Стан "живе" довше, ніж компоненти

Наприклад, користувач переходить між сторінками, а кошик залишається.

Просто кешувати і повторно використовувати дані

Наприклад:

  • завантажуємо список товарів один раз → використовуємо всюди
  • кешуємо фільтри

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.