Vue Router是Vue框架中用于實現路由操作的插件。通過Vue Router,我們可以快速地實現前端的路由跳轉,實現單頁應用(SPA)的效果,又能不用因為不同頁面的數據不同而導致渲染效果不同。而本文便是要講述Vue Router中前進后退的用法。
在Vue Router中,我們通常會使用<router-link>
來實現路由跳轉。
<template>
<div>
<!-- 假設有兩個路由,分別為Home和About -->
<router-link to="/Home">首頁</router-link>
<router-link to="/About">關于我們</router-link>
<router-view></router-view>
</div>
</template>
在上面的代碼中,我們創建了兩個路由,一個是去Home,一個是去About。同時,<router-link>
也會將這些路由渲染成可點擊的超鏈接,我們可以在單擊后自動跳轉到對應的路由。注意:在Vue Router中,路由必須先在routes[]
中設定,才能被<router-view>
渲染出來。
那么,如何實現Vue Router中的前進后退呢?其實是比較簡單的,主要使用的是router.afterEach()
這個鉤子函數。具體可以看以下代碼:
created () {
this.$router.afterEach((to, from) =>{
console.log(`從${from.name}頁面跳轉到了${to.name}頁面`)
console.log('頁面跳轉路徑為:' + this.$route.fullPath)
})
}
在這里,我們使用了Vue Router中的afterEach()
鉤子函數,來捕捉Vue路由的變化。
其中,to代表路由跳轉后的路由對象,from代表路由跳轉前的路由對象。同時,我們還可以使用$route.fullPath
獲取當前路由的完整路徑,從而實現了前進后退的功能。
需要注意的是,Vue Router提供了另一個鉤子函數beforeEach()
,這個函數可以在路由跳轉之前執行,我們可以在這里進行路由攔截等操作。
beforeEach((to, from, next) =>{
console.log(`即將從${from.name}頁面跳轉到${to.name}頁面`)
next()
})
總的來說,Vue Router中的前進后退功能就是利用了路由鉤子函數進行控制,將afterEach()
函數綁定到Vue實例中即可,十分方便易用。
當然,在實際使用Vue Router的過程中,我們還可以利用路由傳參、動態路由、路由嵌套等功能,使得我們的應用更加豐富多彩。