Vue-Router I
路由常遇到的事,在製作網頁時常會遇到設定上的問題
多個 .vue
如何放在同一個頁面
與 <transsition>
動畫怎麼啟動
過渡效果,設定要使用 <router-view>
包覆 <transition>
標籤,這點很重要,一開始會常會認為相反。
然後一定要有一個驅動方式,例如 @click
、<router-link />
、v-if
來讓它顯示效果,否則是不會平白無故動作。
html
<router-view v-slot="{ Component }">
<transition name="fade">
<component :is="Component" />
</transition>
</router-view>
js
const routes = [
{
path: '/custom-transition',
component: PanelLeft,
meta: { transition: 'slide-left' },
},
{
path: '/other-transition',
component: PanelRight,
meta: { transition: 'slide-right' },
},
]
上一頁、下一頁怎麼設定 ( Navigation Guards )
官方叫做 Navigation guards導航守衛
根本看不懂是什麼意思,主要是來監控頁面轉跳的方式。
js
const router = createRouter({ ... })
router.beforeEach((to, from) => {
// ...
// 返回 false 以取消导航
return false
})
為什麼導覽列的路徑會多一個 # Hash
(Different History modes)
多了一個 #
官方叫做 歷史模式,我看不懂跟歷史的關係,只知道對 HTML5 網頁上設計連結
或 轉跳 同頁面 標籤的 ID
有辨識上的影響,在設定上有兩個選擇 createWebHashHistory
、createWebHistory
,上一篇有稍微提到這個 # Hash
。
py
import { createRouter, createWebHashHistory } from 'vue-router'
const router = createRouter({
history: createWebHashHistory(),
routes: [
//...
],
})