Использую Vuex.
В документации
сказано следующее:
Нельзя напрямую изменять состояние хранилища. Единственный способ внести изменения — явно вызвать мутацию.
Поскольку хранилище Vuex реактивно, самый простой способ «получения» — просто вернуть часть состояния хранилища в вычисляемом свойстве
Тогда я создал простой компонент
<div>
<div>
DATA FROM STORE: {{ $store.state.test }}
</div>
<div>
DATA FROM COMPUTED: {{ storeTest }}
</div>
<hr>
<button @click="changeWithMutation">Randomize test</button>
<button @click="changeManually">Randomize manually</button>
</div>
<script>
export default {
data() {
return {
}
},
computed: {
storeTest() {
return this.$store.state.test;
}
},
created() {
},
methods: {
changeWithMutation() {
this.$store.commit('setTest', Math.random());
},
changeManually() {
this.$store.state.test = Math.random();
}
}
}
</script>
И оба утверждения оказались ложными. Я могу менять значения напрямую (метод changeManually) и я могу выводить значения напрямую, а не через computed.
У меня вопрос: это просто так принято, менять и обращаться не напрямую или это действительно может не сработать при каких нибудь обстоятельствах?