在Vue中,想要實(shí)現(xiàn)頁(yè)面之間的跳轉(zhuǎn),我們通常需要使用Vue Router這個(gè)插件。Vue Router底層使用的是瀏覽器的History API,而封裝了一些較為方便的API供我們使用。
在 Vue Router 中,用于導(dǎo)航的組件需要通過 router-link 標(biāo)簽來(lái)創(chuàng)建,而頁(yè)面的展示則需要使用 router-view 標(biāo)簽。而導(dǎo)航操作則可以通過在JS代碼中進(jìn)行跳轉(zhuǎn),下面我們來(lái)簡(jiǎn)單介紹一下使用Vue Router push方法進(jìn)行頁(yè)面跳轉(zhuǎn)。
// 在vue實(shí)例中,通過this.$router.push進(jìn)行跳轉(zhuǎn) // 示例代碼如下: this.$router.push('/blog')
可以看到,這里我們通過 $router 實(shí)例的 push 方法來(lái)進(jìn)行跳轉(zhuǎn),而 push 方法的參數(shù)則是要跳轉(zhuǎn)的目標(biāo)路由地址。這里的'/blog'可以是在路由配置中定義的路徑,也可以是一個(gè)完整的URL。比如,我們可以在一個(gè)組件中使用下面的代碼進(jìn)行跳轉(zhuǎn):
// 在組件內(nèi)部,使用$router.push跳轉(zhuǎn) // 示例代碼如下: export default { methods: { toBlog() { this.$router.push('/blog') } } }
在上述代碼中,我們通過 export default 導(dǎo)出了一個(gè)帶有 toBlog 方法的 Vue 組件。在這個(gè)方法內(nèi)部,我們使用了之前介紹的 $router.push 方法進(jìn)行頁(yè)面跳轉(zhuǎn)。需要注意的是,在Vue組件中,我們不能直接使用 $router 進(jìn)行跳轉(zhuǎn),需要使用 this.$router 的方式來(lái)調(diào)用。
我們還可以通過 $router.push 方法的第一個(gè)參數(shù)傳遞一個(gè)包含路徑和查詢參數(shù)的對(duì)象。這個(gè)對(duì)象中可以包含 path、name、query、params 等屬性,具體細(xì)節(jié)可以查看 Vue Router 官方文檔。
// 在vue實(shí)例中,通過this.$router.push進(jìn)行跳轉(zhuǎn) // 示例代碼如下: this.$router.push({ path: '/blog', query: { id: 1 } })
通過上述代碼示例,我們可以將路由參數(shù)傳遞給要跳轉(zhuǎn)的頁(yè)面。
Vue Router 還提供了 $router.replace 方法,使用方法與 $router.push 類似。它的作用就是在跳轉(zhuǎn)時(shí)不會(huì)生成一個(gè)新的歷史記錄,在瀏覽器后退時(shí)會(huì)直接返回上一個(gè)頁(yè)面,而不是返回到跳轉(zhuǎn)之前的頁(yè)面。
// 在vue實(shí)例中,通過this.$router.replace進(jìn)行跳轉(zhuǎn) // 示例代碼如下: this.$router.replace('/blog')
總結(jié)起來(lái),Vue Router 提供了 $router.push 和 $router.replace 兩個(gè)方法進(jìn)行頁(yè)面跳轉(zhuǎn)。它們的參數(shù)包含了跳轉(zhuǎn)的目標(biāo)路徑、查詢參數(shù)等信息,可以很方便地進(jìn)行導(dǎo)航操作。