過去的網頁大多是 Multi Page Application(多頁式應用程式)
,一個網頁畫面對應到一個網址,當切換一個網址就換開啟一份 HTML 文件。
相對的 SPA(Single Page Application 單頁應用程式)
因為只有一個網頁,所以我們需要告訴路由器什麼時候要將組件 (components) 反映到路由(routes),再渲染出網頁畫面。
可以從架構上看到 SPA 只會生成一支 index.html(APP.html),而網頁的切換就是靠路由器來設定。
<script src="https://unpkg.com/vue@3"></script>
<script src="https://unpkg.com/vue-router@4"></script>
let router = new VueRouter({
})
new Vue ({
el: '#app',
router,
})
// component 組件
let Home = {
template: `<h1>主頁</h1>`,
data(){
return{
}
}
}
let DetailPage = {
template: `<h1>內頁</h1>`,
data(){
return{
}
}
}
// 建立路由
let router = new VueRouter({
routes:[
{
path: '/',
name: 'index',
component: Home
},
{ // 內頁
path: '/pdp/:id',
name: 'product-detail-page',
component: DetailPage
},
{
path: '*',
name: 'notFound',
redirect: '/' // 不符合以上路徑,都會返回 index 頁面
}
]
})
// 綁定根組件
new Vue({
el:'#app',
router,
})
<div id='app'>
<header></header>
<router-view></router-view>
<footer></footer>
</div>
參考來源:
https://next.router.vuejs.org/zh/guide/
https://www.youtube.com/watch?v=aYlihfn-Gmg