鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ vue的這個(gè)路徑#是什么含義,跟router的mode:history有關(guān)系嗎

vue的這個(gè)路徑#是什么含義,跟router的mode:history有關(guān)系嗎

我自己本地寫的路由并沒(méi)有出現(xiàn)#是怎么回事

回答
編輯回答
若相惜

"#" url的hash模式
"#"號(hào) 后面的字符其實(shí)是一個(gè)位置標(biāo)識(shí)符,最早的作用是,如果該網(wǎng)頁(yè)中含有,該標(biāo)識(shí)符的錨點(diǎn)或id,網(wǎng)頁(yè)就可以自動(dòng)滾動(dòng)到該處

為什么會(huì)被SPA采用,也是因?yàn)?號(hào)的幾個(gè)特性

特性1
"#"號(hào) 后面的所有內(nèi)容都不會(huì)被發(fā)送到服務(wù)器, 假如你 訪問(wèn)
http://www.xxx.com/index.html#name=123 服務(wù)器 只收到 get /index.html 的請(qǐng)求。拋棄#以后所有內(nèi)容
特性2
"#"號(hào)后面內(nèi)空更改不會(huì)處罰瀏覽器刷新(對(duì)SPA特別重要),你可嘗試一下,就你的這個(gè)問(wèn)題頁(yè),在地址欄里的url最后加上#xxx 回車一下試試,這個(gè)頁(yè)面不會(huì)刷新,

當(dāng)然它還有一些其它的特性,但相對(duì)SPA來(lái)說(shuō)可能沒(méi)有哪么重要

為什么又出現(xiàn)了history 模式,
我感覺(jué)就一個(gè)原因,不好看

http://www.xxx.com/#/123.html
http://www.xxx.com/123.html

你說(shuō)哪個(gè)URL更友好,更符合人們對(duì)正常URL的期待,history.pushState API比較完善以后,主流的SPA框架都對(duì)其進(jìn)行了支持。
但是history模式,需要后端支持,如果不支持,就可能自動(dòng)降級(jí)為hash模式

2017年3月1日 07:53
編輯回答
乖乖瀦

使用vue-router默認(rèn) hash 模式 ,也就是你上面的“#”模式,如下:
http://yoursite.com/#/user/id

mode:history模式就是正常的路徑模式,如下:
http://yoursite.com/user/id

在vue-router中可以通過(guò)以下方法設(shè)置不同的模式,具體可以看官網(wǎng)https://router.vuejs.org/zh-c...
const router = new VueRouter({
mode: 'history',
routes: [...]
})

2017年12月2日 04:20