vuex: $ store.commit против прямого вызова функции - PullRequest
0 голосов
/ 08 февраля 2019

Я понял, что вы можете передавать функции хранилища мутаций в события HTML, например:

//In the template

<input name="the_field" :value="the_field" @input="updateField"/>

// In the component

methods: {
    ...mapMutations(["updateField"])
}

// In the store

state: {
    the_field: "a value"
},
mutators: {
    updateField (state, e) {
        state[e.target.name] = e.target.value;
    }
}

Так что, просто передав событие в качестве полезной нагрузки, я могу получить функцию обновления общего поля для определенной области,при условии, что имя установлено.

Чтение документов и то, о чем говорят люди, использует this.$scope.commit("function_name", body), даже для обновления полей из ввода.В этом примере мне нужно написать метод компонента, который выполняет этот вызов, возможно, выбирает конкретные данные, такие как this.$scope.commit("updateField", {name: e.target.name, value: e.target.value}).Это проблема производительности, чтобы обойти объект события?И что более важно, можно ли вызывать функцию мутации напрямую вместо использования $store.commit?

1 Ответ

0 голосов
/ 08 февраля 2019

Это проблема с производительностью для передачи объекта события?

Не совсем, вам часто приходится передавать событие по умолчанию, так как оно больше не передается вашей функции или методу, если вы передаете свой собственный груз.

Можно ли вызывать функцию мутации напрямую по сравнению с использованием $ store.commit?

В действительности не имеет значения, изменяете ли вы состояние напрямую с помощью мутаций иливызывайте действия и используйте коммит.Это больше связано с общим дизайном программного обеспечения.Мутации меняют одну вещь в вашем штате.Действия могут вызвать несколько мутаций.Если вы хотите изменить несколько вещей в состоянии, вы должны использовать действие, которое вызывает эти изменения.Таким образом, ваше программное обеспечение становится более легким в обслуживании и более простым в отладке.

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