Vue.js Vue未在组件中定义
我有一个文件:components.js:Vue.js Vue未在组件中定义,vue.js,vuejs2,Vue.js,Vuejs2,我有一个文件:components.js: import Vue from 'vue' import SelectCategory from './components/SelectCategoryComponent' import CommentsManager from './components/CommentsManagerComponent' Vue.component('select-category', SelectCategory); Vue.component('comme
import Vue from 'vue'
import SelectCategory from './components/SelectCategoryComponent'
import CommentsManager from './components/CommentsManagerComponent'
Vue.component('select-category', SelectCategory);
Vue.component('comments-manager', CommentsManager);
在app.js中,我导入了此文件:
window.Vue = require('vue');
import './components'
但当加载页面时,我得到一个错误:
Vue未定义
。当我在每个组件中添加从“Vue”导入Vue
时,所有组件都工作正常。但我如何才能全局添加Vue,而不必在每个组件中添加从“Vue”导入Vue
正如我在您的组件.js中所看到的那样,您已经导入了Vue
,并且导入了另一个Vue
,并将其放入了窗口对象中。因此,您已经在应用程序中导入了两种不同的Vue,并且不需要使用以后可能会混淆的components.js
和app.js
。因此,我建议您将所有需求放在app.js
文件中。
因此app.js文件将如下所示:
import Vue from 'vue'; // es6 syntax
window.Vue = Vue;
import SelectCategory from './components/SelectCategoryComponent'
import CommentsManager from './components/CommentsManagerComponent'
Vue.component('select-category', SelectCategory);
Vue.component('comments-manager', CommentsManager);
但我如何才能全局添加Vue,而不必在每个组件中从“Vue”添加导入Vue
您不应该使用全局变量。在每个文件中放置从“Vue”导入Vue
现在,如果仍然需要,请使用global
而不是window
。并确保先加载该文件。或者,您可能希望在html文件中设置window=
,并将其保留在每个文件之外。如果我在每个组件中导入Vue,性能会很好吗?在多个组件中导入Vue并不意味着您在构建中会有多个Vue副本;它只是告诉webpack每个组件的依赖项是什么。