在Vue項(xiàng)目中,我們常常需要獲取當(dāng)前路由信息,這個功能非常有用,可以讓我們實(shí)現(xiàn)很多功能,比如頁面跳轉(zhuǎn)、頁面中的選中狀態(tài)、頁面中的控制邏輯等。在Vue中,獲取當(dāng)前路由信息可以使用vue-router這個庫。
vue-router是Vue的一個官方插件,它提供了一些API,可以讓我們更方便地管理Vue應(yīng)用程序的路由。比如我們可以通過vue-router來創(chuàng)建路由器實(shí)例、設(shè)置路由規(guī)則、監(jiān)聽路由變化等。使用vue-router可以讓我們實(shí)現(xiàn)spa(單頁面應(yīng)用)和多頁面應(yīng)用。
// 引入vue-router import VueRouter from 'vue-router' // 創(chuàng)建路由器實(shí)例 const router = new VueRouter({ routes: [ { path: '/', name: 'home', component: Home } ] })
上面的代碼中,我們引入了vue-router,并創(chuàng)建了一個路由器實(shí)例。該實(shí)例中有一個routes屬性,它是一個數(shù)組,包含路由規(guī)則的定義。路由規(guī)則中包含的是一個對象,該對象包含path、name和component三個屬性。其中,path是路由規(guī)則的路徑,name是該路由規(guī)則的名稱,component是該路由規(guī)則對應(yīng)的組件。
獲取當(dāng)前路由信息的核心是Vue的$route屬性。在Vue中,$route表示當(dāng)前活躍的路由信息,它是一個包含了當(dāng)前路徑、當(dāng)前參數(shù)以及查詢參數(shù)的對象。
export default { created () { console.log(this.$route.path) // 當(dāng)前路徑 console.log(this.$route.params) // 當(dāng)前參數(shù) console.log(this.$route.query) // 查詢參數(shù) } }
上面的代碼中,我們在Vue組件的created鉤子函數(shù)中,通過this.$route訪問到了當(dāng)前路由信息,并打印了當(dāng)前路徑、當(dāng)前參數(shù)和查詢參數(shù)。
除了使用$route,我們還可以使用$route的一些方法來獲取當(dāng)前路由信息。比如,我們可以使用$route.matched來獲取當(dāng)前路由匹配的路由信息。
export default { created () { console.log(this.$route.matched) // 當(dāng)前路由匹配的路由信息 } }
上面的代碼中,我們在Vue組件的created鉤子函數(shù)中,通過了this.$route.matched方法來獲取當(dāng)前路由匹配的路由信息,并打印出了匹配的路由信息。
通過$route和$route的一些方法,我們可以非常方便地獲取當(dāng)前路由信息。這對于我們的頁面跳轉(zhuǎn)、頁面控制邏輯等功能非常有用。同時(shí),需要注意的是,我們需要在Vue組件中使用$route和$route的方法。