#vue.js #vuejs2 #vuex #vuejs3 #vue-composition-api
#vue.js #vuejs2 #vuex #vuejs3 #vue-composition-api
Вопрос:
Я использую Composition API в Vue2. Можете ли вы сказать мне, как получить доступ mapState
с помощью composition API? Я также хочу следить за изменениями состояния. Следовательно, мне также пришлось бы использовать его в функции setup (не только в return). Спасибо
Ответ №1:
Помощники карты Vuex не поддерживаются (пока?) В Vue 2 или Vue 3 composition API, и это предложение для них на некоторое время приостановлено.
Вам придется вручную создать вычисляемый, как в документах:
const item = computed(() => store.state.item);
Более полный пример:
import { computed } from 'vue';
import { useStore } from 'vuex';
export default {
setup() {
const store = useStore();
const item = computed(() => store.state.item);
return {
item
};
}
}
Комментарии:
1. Поддерживаются ли помощники картографа Vuex в Vuex 4?
2. Похоже, что нет после выполнения предложения. Ну да ладно…
Ответ №2:
Для меня хитрость заключалась в использовании пакета npm vuex-composition-helper.
https://www.npmjs.com/package/vuex-composition-helpers
import { useState, useActions } from 'vuex-composition-helpers';
export default {
props: {
articleId: String
},
setup(props) {
const { fetch } = useActions(['fetch']);
const { article, comments } = useState(['article', 'comments']);
fetch(props.articleId); // dispatch the "fetch" action
return {
// both are computed compositions for to the store
article,
comments
}
}
}