Статьи

Перенос приложения Vue.js в Vuex

Одной из трудностей в начале работы с Vuex является то, что это не столько библиотека, сколько шаблон дизайна . Из этого следует, что реализация Vuex — это не столько использование API, сколько структурирование кода в соответствии с шаблоном. Если вы новичок в Vuex, это будет сложно.

В этой статье я покажу, как начать миграцию Vuex в существующий проект Vue.js. Я покажу вам, как идентифицировать части состояния вашего приложения, которые принадлежат Vuex, и те, которые этого не делают, как преобразовать функции компонентов в мутации, действия и так далее, и, наконец, мы обсудим накопленные преимущества.

Если вы не уверены, почему вы должны использовать Vuex, я рекомендую вам сначала прочитать этот пост. WTF Is Vuex: Руководство для начинающих по хранилищу данных приложений Vue .

Пример из практики: Vue.js Cinema

В качестве примера мы перенесем демонстрационное приложение под названием Vue.js Cinema на Vuex . Это однофайловое приложение Vue на основе компонентов, которое является достаточно хорошим кандидатом для Vuex, поскольку оно имеет значительную часть состояния приложения.

Пример приложения

Пример приложения

Помните, что целью Vuex является управление состоянием приложения. Отсюда следует, что для миграции Vue.js Cinema на Vuex мы должны определить его состояние. Вскоре мы увидим состояние в коде, но сначала полезно определить его, просто наблюдая за тем, что делает приложение, т.е. оно отображает список фильмов и времени сеанса, которые можно отфильтровать, изменив день или переключив время и жанр. фильтры.


Вам также может понравиться:
Vue Tutorial 5 — Привязка данных формы .

Какое государство принадлежит в Vuex?

Используя Vue Devtools или просто проверяя код, мы можем увидеть данные экземпляра и каждого компонента:

Государство в Vuex

Государство в Vuex

Наша цель — не переносить все данные в магазин Vuex. Вместо этого мы хотим нацелить данные, которые:

  1. Изменения на протяжении всего жизненного цикла приложения (статические данные не требуют особого управления).
  2. Разделяется более чем одним экземпляром / компонентом.

Когда мы говорим о состоянии приложения , это то, о чем мы говорим, и это то, что мы хотим перенести в магазин.

Например, посмотрите на этот банк check-filterкомпонентов, которые являются пользовательскими флажками, используемыми для фильтрации списка фильмов:

Фильтрация результатов

Фильтрация результатов

Каждый check-filterкомпонент имеет checkedсвойство data, а также заголовок, который передается ему в качестве реквизита, например, до 18:00 , после 18:00 и т. Д .:

SRC / компоненты / CheckFilter.vue


HTML