Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue和Vuex在单独的文件中导入模块_Javascript_Vue.js_Webpack_Javascript Objects_Node Modules - Fatal编程技术网

Javascript Vue和Vuex在单独的文件中导入模块

Javascript Vue和Vuex在单独的文件中导入模块,javascript,vue.js,webpack,javascript-objects,node-modules,Javascript,Vue.js,Webpack,Javascript Objects,Node Modules,我想我有一个罕见的问题。我将main.js和store.js文件分开,所以在store.js文件中,我导入了Vuex并设置了一个新的Vuex存储,然后将其导出。之后,我在main.js文件中导入了这个文件,并在main.js和Vue.useVuex中再次设置了它的需求导入Vuex。但它不是这样工作的。我必须在store.js文件中写入Vue.useVuex,否则会引发以下错误:错误:[vuex]必须在创建存储实例之前调用Vue.useVuex main.js文件: 从“Vue”导入Vue 从“

我想我有一个罕见的问题。我将main.js和store.js文件分开,所以在store.js文件中,我导入了Vuex并设置了一个新的Vuex存储,然后将其导出。之后,我在main.js文件中导入了这个文件,并在main.js和Vue.useVuex中再次设置了它的需求导入Vuex。但它不是这样工作的。我必须在store.js文件中写入Vue.useVuex,否则会引发以下错误:错误:[vuex]必须在创建存储实例之前调用Vue.useVuex

main.js文件:

从“Vue”导入Vue 从“Vuex”导入Vuex Vue.useVuex; 从“./App.vue”导入应用程序 从'./store/store.js'导入{store}; 新Vue{ el:“应用程序”, 店:店,, 渲染:h=>hApp } 更改store.js以导入Vue并使用Vuex:

然后从main.js文件中删除Vue.useVuex:

在store.js中有一个use语句是完全可以的。事实上,如果选择vuex选项,至少有一个点是使用@vue/cli之类的工具生成的


希望这有帮助

谢谢你的建议,我也知道这个标准方法,但是我想知道我的代码有什么问题。为什么代码不能以这种方式成功执行?@SafarSafarli您在以标准方式执行时遇到问题了吗?您是否检查了store.js中的Vue实例(带use语句和不带use语句)?是的,这是关于导入和捆绑如何工作的。我认为总体而言,这更多的是关于网页包捆绑和解决方案的问题,而不是关于vue/vuex的问题。无论哪种方式,这都很可能是一个标准,因为您看到的错误是网页解析导入的结果。是的,我知道解决此问题的几种方法,但我想知道此问题的原因,否则我不会感到满意。有合适的网页或ES6模块知识的人可能会解释这种黑魔法行为。我希望你能得到你的答案。我只想说,结合插件的特定Vue行为,您可能无法获得关于webpack复杂内部工作的详细答案。无论哪种方式,快乐编码!
import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export const store = new Vuex.Store({
  state: {
    counter: 0
  }
});
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)
})