[英]Components are not showing when the routes changing in vue (Vue3, Vue-router)
我是 Vue(v.3) 和 vue-router 的新手,在与大家分享问题之前,我在 Stack Overflow 和 google 中进行了搜索,但问题仍未解决。
我定义了两条路线:
问题:
登录路线工作正常。 但是当我尝试进入管理路径时,它会显示登录表单而不是管理面板。
注意:我在components/layouts/MasterComponent.vue
和App.vue
中声明<router-view></router-view>
,我只是导入了登录组件。
这是我的代码:
路线:
import { createRouter, createWebHistory } from 'vue-router'
import LoginComponent from "../components/auth/LoginComponent";
import MasterComponent from "../components/layouts/MasterComponent";
import ProjectComponent from "../components/ProjectsComponent.vue";
const routes = [{
name: "Login",
path: "/login",
component: LoginComponent,
},
// admin routes
{
name: "Index",
path: "/admin/index",
component: MasterComponent,
children: [{
path: '/admin/projects',
name: 'Projects',
component: ProjectComponent,
}]
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
主组件代码:
<template>
<div class="app">
<HeaderComponent />
<LeftMenu />
<div class="main-content">
<section class="section">
<div class="section-body">
<!-- add content here -->
<router-view></router-view>
</div>
</section>
<SiteSetting/>
</div>
<FooterComponent />
</div>
</template>
<script>
import HeaderComponent from "./HeaderComponent.vue";
import LeftMenu from "./LeftMenu.vue";
import FooterComponent from "./FooterComponent.vue";
import SiteSetting from "./SiteSetting.vue";
export default {
name: "MasterComponent",
components: {
HeaderComponent,
LeftMenu,
FooterComponent,
SiteSetting
},
};
</script>
应用程序.vue 代码
<template>
<LoginComponent/>
</template>
<script>
import LoginComponent from './components/auth/LoginComponent.vue'
export default {
name: 'App',
components: {
LoginComponent
}
}
</script>
<style>
</style>
main.js 代码
import { createApp } from 'vue'
import App from './App.vue'
import routes from "./routes/route";
import "bootstrap";
import "bootstrap/dist/css/bootstrap.min.css"
const app = createApp(App)
app.use(routes)
app.mount('#app')
问题解决了
我只是忘了把<router-view></router-view>
放在App.vue
里面。 并像这样更改路线:
// admin routes
{
name: "Index",
path: "/admin",
component: MasterComponent,
redirect: '/dashboard',
children: [{
path: '/dashboard',
name: 'Dashboard',
component: DashboardComponent,
}]
},
更改前App.vue
:
<template>
<LoginComponent/>
</template>
<script>
import LoginComponent from './components/auth/LoginComponent.vue'
export default {
name: 'App',
components: {
LoginComponent
}
}
</script>
<style>
</style>
更改后App.vue
:
<template>
<router-view></router-view>
</template>
<script>
export default {
name: 'App',
components: {
}
}
</script>
<style>
</style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.