溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue路由模式有哪些及怎么實現(xiàn)

發(fā)布時間:2022-12-02 09:37:43 來源:億速云 閱讀:133 作者:iii 欄目:web開發(fā)

本篇內(nèi)容介紹了“vue路由模式有哪些及怎么實現(xiàn)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

vue路由模式有:1、hash模式,使用URL的hash值來作為路由,支持所有瀏覽器;其url路徑會出現(xiàn)“#”字符。2、history模式,依賴于HTML5 API(舊瀏覽器不支持)和HTTP服務(wù)端配置,沒有后臺配置的話,頁面刷新時會出現(xiàn)404。3、abstract模式,適用于所有JavaScript環(huán)境,如果沒有瀏覽器API,路由器將自動被強制進入此模式。

路由模式解析

這里要講vue-router的路由模式,首先要了解的一點就是路由是由多個URL組成的,使用不同的URL可以相應(yīng)的導(dǎo)航到不同的位置。如果有進行過服務(wù)器開發(fā)或者對http協(xié)議有所了解就會知道,瀏覽器中對頁面的訪問是無狀態(tài)的,所以我們在切換不同的頁面時都會重新進行請求。而實際使用vue和vue-router開發(fā)就會明白,在切換頁面時是沒有重新進行請求也沒有重新刷新頁面,使用起來就好像頁面是有狀態(tài)的,這是什么原因呢。這其實是借助了瀏覽器的History API來實現(xiàn)的,這樣可以使得頁面跳轉(zhuǎn)而不刷新,頁面的狀態(tài)就被維持在瀏覽器中了。

一、hash模式

使用 URL 的 hash 來模擬一個完整的 URL,于是當(dāng) URL 改變時,頁面不會重新加載,其顯示的網(wǎng)路路徑中會有 “#” 號,有一點點丑。這是最安全的模式,因為他兼容所有的瀏覽器和服務(wù)器。

1-特點:hash模式的url地址上有'#'

 <a href='#/aaa'>1(#/aaa)</a>

其中#/aaa就是我們的hash值,并且hash值并不會傳給服務(wù)器

2-實現(xiàn)的原理:

原生的hashChange事件,主要是通過事件監(jiān)聽hash值得變化 window.onHashChange=function(){}

3-刷新頁面:

不會不發(fā)生請求,頁面不會有任何問題,不需要后端配合

而且hash模式的兼容性比較好.不過他因為帶有'#'所以他的美觀行沒有history 模式好。

二、history模式

美化后的hash模式,會去掉路徑中的 “#”。依賴于Html5 的history,pushState API,所以要擔(dān)心IE9以及一下的版本,感覺不用擔(dān)心。并且還包括back、forward、go三個方法,對應(yīng)瀏覽器的前進,后退,跳轉(zhuǎn)操作。就是瀏覽器左上角的前進、后退等按鈕進行的操作。

history.go(-2);//后退兩次
history.go(2);//前進兩次
history.back(); //后退
hsitory.forward(); //前進

但是history也是有缺點的,不怕前進后退跳轉(zhuǎn),就怕刷新(如果后端沒有準(zhǔn)備的話),因為刷新是實實在在地去請求服務(wù)器了。

總結(jié)一下

1:hash模式(vue-router默認(rèn)模式URL后面帶#)使用URL的hash值來作為路由,支持所有瀏覽器;缺點:只能改變#后面的來實現(xiàn)路由跳轉(zhuǎn)。
2:history模式(通過mode: 'history’來改變?yōu)閔istory模式)HTML5 (BOM)History API 和服務(wù)器配置 缺點:怕刷新如果后端沒有處理這個情況的時候前端刷新就是實實在在的請求服務(wù)器這樣消耗的時間很多還很慢。

三、abstract模式

abstract 是vue路由中的第三種模式,本身是用來在不支持瀏覽器API的環(huán)境中,充當(dāng)fallback,而不論是hash還是history模式都會對瀏覽器上的url產(chǎn)生作用,他一般要實現(xiàn)的功能就是在已存在的路由頁面中內(nèi)嵌其他的路由頁面,而保持在瀏覽器當(dāng)中依舊顯示當(dāng)前頁面的路由path,這就是abstract這種與瀏覽器分離的路由模式。

適用于所有JavaScript環(huán)境,例如服務(wù)器端使用Node.js。如果沒有瀏覽器API,路由器將自動被強制進入此模式。

然后在

const router = new VueRouter({routes, mode:'hash|history|abstract',})

這里進行切換。

“vue路由模式有哪些及怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI