你试过这个吗?
import Vue from 'vue' import VueRouter from 'vue-router'
然后用
Vue.use(VueRouter)
因为错误消息意味着您需要先导入vue才能使用vue-router
有什么办法可以使用main.js中导入的vue吗?
不,您需要在每个使用的文件中导入它 Vue 。进口/需求是事物如何联系起来的。请放心,每次导入都是相同的单例实例。
Vue
您可以使用Vue组件的javascript访问路由器 this.$router 和 this.$route 没有导入,或在模板内,简单地使用 $router 和 $route
this.$router
this.$route
$router
$route
不推荐,但是你 的 能够 强> 将Vue分配给main.js中的全局,并使用全局而不导入。
main.js
import Vue from 'vue'; global.MyVue = Vue
App.vue
import VueRouter from 'vue-router'; MyVue.use(VueRouter);
这就是ES6如何联系起来的。考虑一下 wiring 。如果有超过1个Vue lib可用,链接器将如何知道使用哪个?如果另一个库定义了一个名为Vue的变量或函数怎么办?也许lib使用自己的内部Vue作为事件总线或其他功能。
wiring
显式导入还使IDE自动完成和语法突出显示更好。有些IDE可以自动添加导入,这使生活更轻松。
你做了正确的事情,你不必担心在多个文件中导入Vue。当您运送应用程序并将其构建用于生产时,您将只有一个“Vue导入”。如果你看看dist文件夹和你的捆绑 .js 文件你会注意到Vue只导入一次。
.js