hash和history模式的區(qū)別

hash模式

1瓶盛、帶#號(hào)
http://10.46.134.159:8080/#/about
2、能監(jiān)聽hash變化的事件熊赖,onhashchange

在hash模式下澎嚣,通過router-link的to屬性和this.$router.push均不會(huì)觸發(fā)onhashchange事件
與之對應(yīng)的replace也不會(huì)觸發(fā)
執(zhí)行window.history.back()
window.history.forward()
window.history.go(1)會(huì)觸發(fā)
點(diǎn)擊瀏覽器左上角的前進(jìn)后退可以觸發(fā)onhashchange

window.addEventListener(
  'hashchange',
  function (event) {
      const oldURL = event.oldURL; // 上一個(gè)URL
      const newURL = event.newURL; // 當(dāng)前的URL
      console.log(newURL, oldURL);
  },
  false
);

注意:監(jiān)聽方法的調(diào)用,要在mounted中淋淀,不能在created中
3遥昧、兼容性 ie8
4、頁面隨便刷新

history模式

1、網(wǎng)址正常
http://10.46.134.159:8080/about
2炭臭、能監(jiān)聽history變化的事件永脓,onpopstate

在history模式下,
通過router-link的to屬性和this.$router.push均不會(huì)觸發(fā)onpopstate事件
調(diào)用window.history.pushState 和 window.history.replaceState 不會(huì)觸發(fā) onpopstate 事件
與之對應(yīng)的replace也不會(huì)觸發(fā)
執(zhí)行window.history.back()
window.history.forward()
window.history.go(1)會(huì)觸發(fā) 0是刷新 可傳-1
點(diǎn)擊瀏覽器左上角的前進(jìn)后退可以觸發(fā)onpopstate
a 標(biāo)簽的錨點(diǎn)也會(huì)觸發(fā)該事件

window.addEventListener("popstate", function() {
    var currentState = history.state;
    console.log('history',history)                                         
});

2個(gè)api能控制歷史記錄棧
(1) window.history.pushState(state, title, url);在瀏覽器中新增一條歷史記錄鞋仍。state是對象常摧,會(huì)在onpopstate事件觸發(fā)時(shí)作為參數(shù)傳遞過去,title為頁面標(biāo)題威创,url為頁面地址落午;
瀏覽器在調(diào)用pushState()方法后不會(huì)去加載這個(gè)URL,新的URL不一定要是絕對地址肚豺,如果它是相對的板甘,它一定是相對于當(dāng)前的URL。
url不能跨域详炬,否則報(bào)錯(cuò)
(2) window.history.replaceState(state, title, url);在瀏覽器中替換當(dāng)前歷史記錄
上述2個(gè)api使用場景盐类,控制安卓系統(tǒng)的回退按鈕的跳轉(zhuǎn)

history的其他api
history.length():當(dāng)前歷史列表中的歷史記錄條數(shù);

需要注意:
谷歌瀏覽器和火狐瀏覽器在頁面第一次打開的反應(yīng)是不同的呛谜,谷歌瀏覽器奇怪的是會(huì)觸發(fā) onpopstate 事件在跳,而火狐瀏覽器則不會(huì)
解決:先加入一條記錄,在定時(shí)器中加onpopstate 的監(jiān)聽
組件釋放的時(shí)候要記得去掉監(jiān)聽

3隐岛、兼容性 ie10
專業(yè)網(wǎng)址:
https://developer.mozilla.org/en-US/docs/Web/API/History
onpopstate猫妙、pushState、replaceState都是兼容到ie10

image.png

pushState 和 replaceState 兩個(gè)方法跟 location.href 和 location.replace 兩個(gè)方法有什么區(qū)別呢聚凹?應(yīng)用的場景有哪些呢割坠?

location.href 和 location.replace 切換時(shí)要向服務(wù)器發(fā)送請求,而 pushState 和 replace 僅修改 url

window.location.replace="http://10.46.134.159:8080/about";
location.replace("http://10.46.134.159:8080/about")

image.png

window.location.replace會(huì)增加一條history歷史記錄

另外有history封裝的js
https://cdn.bootcss.com/history/4.7.2/history.js

===至于 history刷新404 不懂===

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妒牙,一起剝皮案震驚了整個(gè)濱河市彼哼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湘今,老刑警劉巖敢朱,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摩瞎,居然都是意外死亡拴签,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門旗们,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚓哩,“玉大人,你說我怎么就攤上這事上渴“独妫” “怎么了喜颁?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盛嘿。 經(jīng)常有香客問我洛巢,道長括袒,這世上最難降的妖魔是什么次兆? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮锹锰,結(jié)果婚禮上芥炭,老公的妹妹穿的比我還像新娘。我一直安慰自己恃慧,他們只是感情好园蝠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痢士,像睡著了一般彪薛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怠蹂,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天善延,我揣著相機(jī)與錄音,去河邊找鬼城侧。 笑死易遣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嫌佑。 我是一名探鬼主播豆茫,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屋摇!你這毒婦竟也來了揩魂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤炮温,失蹤者是張志新(化名)和其女友劉穎肤京,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅特,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忘分,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了白修。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片妒峦。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖兵睛,靈堂內(nèi)的尸體忽然破棺而出肯骇,到底是詐尸還是另有隱情窥浪,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布笛丙,位于F島的核電站漾脂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胚鸯。R本人自食惡果不足惜骨稿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姜钳。 院中可真熱鬧坦冠,春花似錦、人聲如沸哥桥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拟糕。三九已至判呕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間送滞,已是汗流浹背侠草。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留累澡,地道東北人梦抢。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像愧哟,于是被迫代替她去往敵國和親奥吩。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容