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

vue的這個路徑#是什么含義,跟router的mode:history有關系嗎

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

回答
編輯回答
若相惜

"#" url的hash模式
"#"號 后面的字符其實是一個位置標識符,最早的作用是,如果該網(wǎng)頁中含有,該標識符的錨點或id,網(wǎng)頁就可以自動滾動到該處

為什么會被SPA采用,也是因為#號的幾個特性

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

當然它還有一些其它的特性,但相對SPA來說可能沒有哪么重要

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

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

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

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

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

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

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

2017年12月2日 04:20