Правильное место для запуска скрипта в потоке vuex? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть действие, setProducts, которое я передаю полезную нагрузку, возвращенную методом productSearch().

В моем компоненте Vue это выглядит следующим образом:

let products = productSearch();
this.$store.dispatch('setProducts', products);

Тем не менее, мне интересно, если правильный способ сделать это состоит в том, чтобы реорганизовать мое setProducts действие в searchProducts, тогда в моем мутаторе вызовите метод productSearch().

Итак, из моего компонента я запускаю:

this.$store.dispatch('searchProducts');

Тогда для моего метода мутатора у меня будет что-то вроде этого:

searchProducts(state) {
    state.products = productSearch();
},

Есть ли более "правильный" способ сделать это?

1 Ответ

0 голосов
/ 08 ноября 2018

Думаю, так будет лучше:

Компонент:

this.$store.dispatch('searchProducts')

Действие:

searchProducts(state) {
    commit('updateProducts', productSearch())'
}

Mutator:

updateProducts(state, products) {
    state.products = products
}

Действия не должны напрямую влиять на значения состояния. Вам всегда нужно использовать commit и мутаторы для обновления переменных вашего хранилища, и ваши мутаторы никогда не должны вызывать функции, они работают как установщики (получают переменную в качестве параметра и применяют ее к переменной состояния).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...