Как и во всех других ответах, в этом коде так много неправильного.
Во-первых, есть файл rout.js, но он не используется.
Я имеюсоздал версию вашего кода в песочнице https://codesandbox.io/s/z22rx97z24, чтобы показать вам рабочую версию маршрутизатора / приложения.
Что изменилось?
Во-первых, вы должны экспортировать экземпляр vueМаршрутизатор в router.js не просто определяет const.Это рекомендуемый способ маршрутизации в Vue.
import Vue from "vue";
import Router from "vue-router";
import App from "./App";
import Login from "./components/auth/Login";
import Logout from "./components/auth/Logout";
import Register from "./components/auth/Register";
Vue.use(Router);
export default new Router({
routes: [
{
path: "/customers",
name: "customers",
component: App,
meta: {
requiresAuth: true
}
},
{
path: "/login",
name: "login",
component: Login,
meta: {
requiresVisitor: true
}
},
{
path: "/register",
name: "register",
component: Register,
meta: {
requiresVisitor: true
}
},
{
path: "/logout",
name: "logout",
component: Logout
}
]
});
Во-вторых, вы импортируете этот экземпляр в app.js и присваиваете свойству router свойства экземпляра Vue.
import Vue from "vue";
import VueRouter from "vue-router";
import router from "./routes";
Vue.use(VueRouter);
const app = new Vue({
el: "#app",
router: router
});
Youхраните компоненты вне вашего app.js, где это возможно.Это позволяет вам выполнять такие вещи, как загрузка ресурсов по требованию в вашем router.js и т. Д.