Как получить доступ к помощникам карты Vuex с помощью Composition API

#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
        }
    }
}