Есть ли способ использовать импортированное значение vue из main.js?
Нет, вам нужно импортировать его в каждый файл, который использует Vue
. Импорт / требует, как вещи подключены. Будьте уверены, каждый импорт будет одним и тем же экземпляром.
Вы можете добраться до маршрутизатора из javascript компонента Vue, используя 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? Возможно, библиотека использует свое внутреннее Vue для шины событий или другой функции.
Другие мысли
Явный импорт также улучшает автозаполнение IDE и подсветку синтаксиса. Некоторые IDE могут автоматически добавлять импорт, что облегчает жизнь.