You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vue-router仅切换URL不切换视图组件的问题求助

问题解决:Vue Router仅切换URL不切换视图

问题根源

项目未在根组件中设置路由视图挂载点(<router-view>),而是固定渲染了Home组件。这导致路由切换时没有容器加载匹配的视图组件,因此始终显示Home的内容。

解决方案

1. 修改根组件(App.vue)

将直接渲染的Home组件替换为<router-view>,让Vue Router有位置展示匹配的路由组件:

<template>
  <router-view />
</template>

<script>
export default {
  name: 'App'
}
</script>

2. 确保路由正确安装(main.js)

确认在入口文件中正确注册路由:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

3. 优化全局组件布局(可选)

如果希望Header和Footer在所有页面显示,将它们移到App.vue中,而非Home组件内:

<!-- 修改后的App.vue -->
<template>
  <div class="wrapper">
    <Header />
    <router-view />
    <Footer />
  </div>
</template>

<script>
import Header from './components/Header.vue'
import Footer from './components/Footer.vue'

export default {
  name: 'App',
  components: {
    Header,
    Footer
  }
}
</script>

同时简化Home组件,仅保留页面专属内容:

<!-- 修改后的Home.vue -->
<template>
  <Main />
</template>

<script>
import Main from '../components/Main.vue'

export default {
  name: 'Home',
  components: {
    Main
  }
}
</script>

调整完成后,点击导航链接即可正确切换视图:访问根路径显示Main组件,访问/shops显示NotMain组件。

内容的提问来源于stack exchange,提问作者user21728832

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:00:35