Vue и модуль импорта Vuex в отдельных файлах - PullRequest
0 голосов
/ 06 мая 2020

Думаю, у меня редкий вопрос. Я отделил файл main. js и store. js, поэтому в store. js file я импортировал Vuex и установил новое хранилище vuex, а затем экспортировал его. После этого я импортировал этот файл в файл main. js и настроил его требования (снова импортируйте Vuex в main. js и Vue .use (Vuex) здесь). Но так не работает. Я должен написать Vue .use (Vuex) внутри файла store. js, иначе он выдает эту ошибку: Ошибка: [vuex] должен вызвать Vue .use (Vuex) перед созданием экземпляра хранилища .

основной. js файл:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);

import App from './App.vue'

import {store} from './store/store.js';

new Vue({
  el: '#app',
  store: store,
  render: h => h(App)
})

и сохранить. js файл:

import Vuex from "vuex";

export const store = new Vuex.Store({
  state: {
    counter: 0
  }
});

Хотя я вызвал import {store} from './store/store.js'; после Vue .use (Vuex), поэтому экземпляр Vuex внутри хранилища. js файл не запускается раньше Vue .use (Vuex)

Я подозреваю, что проблема связана с веб-пакетом, но я не могу быть уверен.

1 Ответ

0 голосов
/ 06 мая 2020

Замените store.js на импорт Vue и используйте Vuex:

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export const store = new Vuex.Store({
  state: {
    counter: 0
  }
});

Затем удалите Vue.use(Vuex) из main.js файла:

import Vue from 'vue'

import App from './App.vue' 
import {store} from './store/store.js';

new Vue({
  el: '#app',
  store: store,
  render: h => h(App)
})

Это нормально иметь оператор use в store.js. Фактически, это будет (по крайней мере, в одной точке) сгенерировано с использованием такого инструмента, как @vue/cli, если вы выберете опцию vuex.

Надеюсь, это поможет!

...