路由模式

為了構(gòu)建 SPA(單頁面應(yīng)用)
前端路由的核心值依,
改變視圖的同時(shí)不會(huì)向后端發(fā)出請(qǐng)求
前端路由模式有兩種:
hash 模式 和 history 模式
兩者分別利用瀏覽器自由特性
實(shí)現(xiàn)單頁面導(dǎo)航

hash 模式:
window.location 或 a 標(biāo)簽改變錨點(diǎn)值碟案,
window.hashchange() 監(jiān)聽錨點(diǎn)變化

history 模式:
history.pushState()、history.replaceState() 定義目標(biāo)路由,
window.onpopstate() 監(jiān)聽瀏覽器操作導(dǎo)致的 URL 變化

React Router 匹配路由由 mathPath 通過 path-to-regexp 進(jìn)行风秤,
<Route> 相當(dāng)于一個(gè)高階組件扮叨,
以不同的優(yōu)先級(jí)和匹配模式渲染匹配到的子組件

hash 
url #
history 
HTML5 History - pushState() 和 replaceState() 
history.pushState URL 跳轉(zhuǎn)而無須重新加載頁面
 相比于直接修改 hash,存在以下優(yōu)勢(shì):
新 URL 可以是與當(dāng)前 URL 同源的任意 URL碍沐;
 只可修改 # 后面的部分衷蜓,
因此只能設(shè)置與當(dāng)前 URL 同文檔的 URL;

新 URL 可以與當(dāng)前 URL 一模一樣磁浇,這樣也會(huì)把記錄添加到棧中;
新值必須與原來不一樣才會(huì)觸發(fā)動(dòng)作將記錄添加到棧中无虚;

 通過 stateObject 參數(shù)可以添加任意類型的數(shù)據(jù)到記錄中交洗; 
只可添加短字符串;

pushState() 可額外設(shè)置 title 屬性供后續(xù)使用构拳。

SPA 雖然在瀏覽器里游刃有余,
但真要通過 URL 向后端發(fā)起 HTTP 請(qǐng)求時(shí)斗埂,
兩者的差異就來了凫海。
尤其在用戶手動(dòng)輸入 URL 后回車,
或者刷新(重啟)瀏覽器的時(shí)候行贪。

個(gè)人在接入微信的一個(gè)活動(dòng)開發(fā)過程中 
開始使用的hash模式,
但是后面后端無法獲取到我#后面的url參數(shù)崭捍,
于是就把參數(shù)寫在#前面啰脚,
但是討論后還是決定去掉這個(gè)巨丑的#

于是乎改用history模式,
但是開始跑流程的時(shí)候是沒問題,
但是后來發(fā)現(xiàn)跳轉(zhuǎn)后刷新或者回跳亮航,
會(huì)報(bào)一個(gè)404的錯(cuò)誤匀们,找不到指定的路由,
最后后端去指向正確的路由 
加了/hd/xxx 去匹配是否有這個(gè)/hd/{:path} 
才得以解決

總結(jié)**

1 hash 模式下,
僅 hash 符號(hào)之前的內(nèi)容會(huì)被包含在請(qǐng)求中宴猾,
如 [http://www.abc.com](https://link.zhihu.com/?target=http%3A//www.abc.com),
因此對(duì)于后端來說仇哆,
即使沒有做到對(duì)路由的全覆蓋夫植,
也不會(huì)返回 404 錯(cuò)誤。

2 history 模式下延欠,
前端的 URL 必須和實(shí)際向后端發(fā)起請(qǐng)求的 URL 一致,
如[http://www.abc.com/book/id](https://link.zhihu.com/?target=http%3A//www.abc.com/book/id) 
如果后端缺少對(duì) /book/id 的路由處理由捎,
將返回 404 錯(cuò)誤饿凛。
Vue-Router 官網(wǎng)里如此描述:
“不過這種模式要玩好,還需要后臺(tái)配置支持……
所以呢心肪,你要在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源:
如果 URL 匹配不到任何靜態(tài)資源,
則應(yīng)該返回同一個(gè) index.html 頁面硬鞍,
這個(gè)頁面就是你 app 依賴的頁面戴已。”

3 結(jié)合自身例子糖儡,
對(duì)于一般的 Vue + Vue-Router + Webpack + XXX 形式的 Web 開發(fā)場景,
用 history 模式即可著淆,
只需在后端(Apache 或 Nginx)進(jìn)行簡單的路由配置拴疤,
同時(shí)搭配前端路由的 404 頁面支持。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苔埋,一起剝皮案震驚了整個(gè)濱河市蜒犯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罚随,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遵班,死亡現(xiàn)場離奇詭異潮改,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)汇在,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門糕殉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阿蝶,你說我怎么就攤上這事∑歉浚” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵冶匹,是天一觀的道長嚼隘。 經(jīng)常有香客問我,道長飞蛹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任卧檐,我火速辦了婚禮,結(jié)果婚禮上捕仔,老公的妹妹穿的比我還像新娘盈罐。我一直安慰自己,他們只是感情好盅粪,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瓤逼,像睡著了一般库物。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戚揭,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音精居,去河邊找鬼潜必。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磁滚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垂攘,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼晒他,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了陨仅?” 一聲冷哼從身側(cè)響起铝侵,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤咪鲜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猾警,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年崔慧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了穴墅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡皇钞,死狀恐怖松捉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隘世,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布复斥,位于F島的核電站械媒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纷捞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一世分、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臭埋,春花似錦踪央、人聲如沸畅蹂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叠穆。三九已至,卻和暖如春硼被,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嚷硫。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脆贵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓丹禀,卻偏偏與公主長得像鞋怀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子密似,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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