iT邦幫忙

0

router link page1.vue跟page2.vue一直出現App.vue內容

  • 分享至 

  • xImage
  1. router link page1.vue跟page2.vue會出現App.vue內容,試各種方法還是出現App.vue內容,問chapgpt他說路由器錯誤,但我不知道哪裡錯誤,為什麼不是顯示page1.vue跟page2.vue內容,卻都是App.vue的內容
index.js
import { createRouter, createWebHistory } from 'vue-router'
import Page1 from '../components/Page1.vue'
import Page2 from '../components/Page2.vue'

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/', redirect: '/page1' },
    { path: '/page1', component: Page1 },
    { path: '/page2', component: Page2 },
  ]
})

router.beforeEach((to, from, next) => {
  next(false);
});

export default {
  install(app) {
    app.use(router);
  }
};
main.js
import { createApp } from 'vue'
import App from './App.vue'
import routerPlugin from './router/index.'
import Datetime from './components/Datetime.vue'

const app = createApp(App)
app.use(routerPlugin)
app.component('datetime', Datetime)
app.mount('#app')
App.vue
<template>
  <div id="app">  
    <div>
    <router-link to="/"></router-link>
    <router-link to="/Page2"></router-link>
    <router-view></router-view>
  </div>.

  </div>
</template>

https://ithelp.ithome.com.tw/upload/images/20240403/20162024jCDnjODeuX.png
https://ithelp.ithome.com.tw/upload/images/20240403/2016202427sRkIKfIX.png

froce iT邦大師 1 級 ‧ 2024-04-08 15:37:23 檢舉
你沒搞懂SPA是怎麼玩的。
1. 一般網頁都會有共通部分(如footer、header、side bar)和不共通部分
2. 共通部分放在app.vue直接寫,不共通部分會放在app.vue中的router-view去作呈現
3. 這基本上跟一般靜態網頁的邏輯是一樣的,只是靜態網頁只能把共通部分一個一個重複寫在html裡
4. 如果真的不要用連結控制,可以用動態元件(v-bind:is)去做,但這基本上都是比較簡單的才會這樣寫
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
PY
iT邦新手 3 級 ‧ 2024-04-03 16:57:54
最佳解答

page1.vuepage2.vue的內容是會展示在<router-view></router-view>裡面

所以看到App.vue的內容很正常

好,哪有辦法只要顯示page1.vue跟page2.vue內容嗎,還是只能用a href這個辦法

PY iT邦新手 3 級 ‧ 2024-04-03 17:42:52 檢舉

你的menu應該是要顯示在畫面上吧。

那我建議做一個Layout出來,一邊放菜單一邊放內容

好的謝謝

我要發表回答

立即登入回答