溫馨提示×

溫馨提示×

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

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

vue-router的兩種模式的區(qū)別

發(fā)布時間:2020-10-04 06:10:04 來源:腳本之家 閱讀:162 作者:大尾巴XYW 欄目:web開發(fā)

1、大家都知道vue是一種單頁應(yīng)用,單頁應(yīng)用就是僅在頁面初始化的時候加載相應(yīng)的html/css/js一單頁面加載完成,不會因為用戶的操作而進(jìn)行頁面的重新加載或者跳轉(zhuǎn),用javascript動態(tài)的變化html的內(nèi)容

優(yōu)點: 良好的交互體驗,用戶不需要刷新頁面,頁面顯示流暢, 良好的前后端工作分離模式,減輕服務(wù)器壓力,
缺點: 不利于SEO,初次加載耗時比較多

2、hash模式

vue-router默認(rèn)的是hash模式—使用URL的hash來模擬一個完整的URL,于是當(dāng)URL改變的時候,頁面不會重新加載,也就是單頁應(yīng)用了,當(dāng)#后面的hash發(fā)生變化,不會導(dǎo)致瀏覽器向服務(wù)器發(fā)出請求,瀏覽器不發(fā)出請求就不會刷新頁面,并且會觸發(fā)hasChange這個事件,通過監(jiān)聽hash值的變化來實現(xiàn)更新頁面部分內(nèi)容的操作

對于hash模式會創(chuàng)建hashHistory對象,在訪問不同的路由的時候,會發(fā)生兩件事:
HashHistory.push()將新的路由添加到瀏覽器訪問的歷史的棧頂,和HasHistory.replace()替換到當(dāng)前棧頂?shù)穆酚?/p>

vue-router的兩種模式的區(qū)別

vue-router的兩種模式的區(qū)別

3、history模式

主要使用HTML5的pushState()和replaceState()這兩個api來實現(xiàn)的,pushState()可以改變url地址且不會發(fā)送請求,replaceState()可以讀取歷史記錄棧,還可以對瀏覽器記錄進(jìn)行修改

window.history.pushState(stateObject, title, URL)
 window.history.replaceState(stateObject, title, URL)

包括back,forward , go 三個方法

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

區(qū)別:

前面的hashchange,你只能改變#后面的url片段。而pushState設(shè)置的新URL可以是與當(dāng)前URL同源的任意URL。
history模式則會將URL修改得就和正常請求后端的URL一樣,如后端沒有配置對應(yīng)/user/id的路由處理,則會返回404錯誤

總結(jié)

以上所述是小編給大家介紹的vue-router的兩種模式的區(qū)別,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

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

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

AI