當你在一個Vue項目中使用路由時,你可能會遇到需要改變導航狀態(即高亮顯示當前活動路由)的情況。這種情況很常見,因為它使用戶能夠清楚地了解他們當前所在的頁面。
這里是一個示例路由配置: const routes = [ { path: '/home', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact }, ] 當我們想要增加一個的導航狀態切換,我們需要做以下幾步:
第一步是找出用戶當前的活動路由。這可以通過$router對象的currentRoute屬性來完成。currentRoute對象包含著有關當前激活的路由的具體信息,包括其路徑和名稱。
const activeRoute = this.$router.currentRoute;
第二步是在導航視圖中為激活路由添加一個類名。我們可以在這一步中使用vue的計算屬性來表示當前激活路由,并返回一個布爾值。
computed: { isActive() { return this.$router.currentRoute.path === this.to; } }, 接下來,我們需要在導航組件內部的HTML結構中使用isActive屬性來添加我們想要的類名:
現在,我們只需要通過CSS來定義.active類的樣式即可。當用戶更改路由時,isActive屬性將更新,并且相應的類名將應用或移除。
.active { background-color: #f00; color: #fff; }
這是向Vue導航中添加狀態切換的最基本方法,但是在實踐中,可能還需要更多的高級功能。Vue提供了一個名為“vue-router”的官方路由庫,它提供了許多內置功能,可以幫助您管理應用程序中的導航狀態。
我們可以像這樣使用vue-router庫:
// 在Vue項目中引入vue-router庫 import VueRouter from 'vue-router' Vue.use(VueRouter) const routes = [ { path: '/home', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact }, ] // 創建vue-router實例 const router = new VueRouter({ routes // shorter for routes: routes }) // 在某個Vue組件上使用router-linkAbout // 在Vue根實例中使用router-view const app = new Vue({ router }).$mount('#app')
vue-router庫為我們提供了兩個新的組件:router-link和router-view。其中,router-link允許用戶點擊路由鏈接,而router-view用于渲染當前頁面內容。路由庫像我們的手動方法一樣使用計算屬性來確定當前活動路由,因此我們可以使用類似isActive的方法來更改導航狀態切換。
Vue導航狀態切換的代碼實現并不復雜,在Vue.js中實現一個狀態切換菜單的前端技術也可以作為您作為一個前端開發程序員的一項基本技能。希望在您開發下一個Vue.js應用程序時,這些代碼對您有所幫助。
上一篇HTML布局結構代碼