Vuex против простых общих данных

Есть ли что-то, что может сделать Vuex, чего не может сделать следующий простой общий магазин? -

let store = {
    user: {
        name: 'John Doe'
    }
};

new Vue({
    el: '#app-one',
    data: {
        bar: 'foo',
        shared: store
    }
 });

new Vue({
    el: '#app-two',
    data: {
        foo: 'bar',
        shared: store
    }
 });       

Если да, то каковы эти распространенные варианты использования?

Да, я все еще не понимаю. Чем Vuex отличается от «глобального» объекта, возможно, с некоторыми методами, обеспечивающими то, что вам нужно. В документации Vuex рекомендуется использовать этот подход, пока вы не узнаете, что вам понадобится Vuex (это как очки, вы будете знать, когда они вам понадобятся). Я все еще не в этом. Я не видел ничего, что бы за меня не решал простой глобальный объект.

Kevin 14.01.2020 07:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
500
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В глубине души хранилище Vuex - это просто реактивный объект Vue, который вы добавляете.

Поэтому, если вы будете использовать только state из магазина Vuex через прямой доступ, тогда оба подхода будут работать одинаково.

Дело в том, что если во Vuex вы напрямую используете только state, вы в значительной степени недостаточно используете этот инструмент. Вы платите цену, но не получаете выгоды.

У Vuex есть геттеры, которые похожи на повторно используемые вычисляемые свойства. Они также позволяют отделить ваши приложения от внутренней структуры состояния магазина.

Vuex имеет модули / пространства имен, которые позволяют вам разбивать код вашего магазина и лучше организовывать его по мере его роста.

У Vuex также есть действия и мутации. Действия позволяют создавать «методы», которые могут повторно использоваться любым экземпляром (или компонентом) Vue, использующим хранилище. Еще одна важная вещь - действия и мутации обеспечивают соблюдение «протокола», который также поможет вам лучше организовать ваш код и, что наиболее важно, поможет вам отлаживать вашего кода легче, когда что-то станет проблематичным (и они будут, если ваше приложение вырастет достаточно).

Например, рассмотрим приложение, в котором многие точки приложения меняют один и тот же бит состояния. Учтите также, что некоторые из этих изменений выполняются асинхронно. Используя Vuex, вы знаете, что любая асинхронная операция выполняется внутри действий, поэтому, если у вас есть проблема «гонки», источник проблемы должен быть там. В Vuex вы также знаете, что в конечном итоге изменения состояния выполняются при мутации Только (и синхронно). Так что, если что-то станет безумным, вы всегда можете установить точку останова на этой мутации и выяснить, что, черт возьми, ее вызывает. Если вы не используете Vuex в любом достаточно большом приложении, изменения будут происходить из слишком большого количества мест и слишком часто, что в конце концов сделает вашу жизнь не такой простой.

Другие вопросы по теме