關(guān)于根url后自動添加“#”的問題
在瀏覽器中輸入http://localhost:8080/時回自動添加#/后綴,
麻煩能解釋下具體的原因么?
如果在新建Router時設(shè)置屬性mode:?'history',就不會在根url后添加“#”。
在瀏覽器中輸入http://localhost:8080/時回自動添加#/后綴,
麻煩能解釋下具體的原因么?
如果在新建Router時設(shè)置屬性mode:?'history',就不會在根url后添加“#”。
2019-09-12
舉報
2019-09-13
關(guān)于Vue router的模式,可以參考官方的文檔來了解:
具體這樣做的原因?設(shè)計(jì)路由就是為了提高用戶體驗(yàn),而設(shè)計(jì)兩種不同的模式,是針對了不同的業(yè)務(wù)場景。
這里有幾個角度來思考這個問題:
角度一:Vue設(shè)計(jì)之初,對于流行的單頁面應(yīng)用,為了提高頁面的過渡,減少頁面的刷新,引入了路由的概念。那么,路由的設(shè)計(jì)的時候,有的時候,我們需要去取參數(shù)(比如路由的路徑);有的時候,像在一些與動態(tài)語言配合的時候,需要絕對的路徑;還有一些特別的情況,比如微信環(huán)境,#號就經(jīng)常被截?cái)嗔恕?/p>
那么,這個時候,使用#號配合?
history.pushState
?API 來完成 URL 跳轉(zhuǎn)而無須重新加載頁面。角度二:這個就是配置的原因,Vue的默認(rèn)配置就是mode: 'hash'。這個參考一下,官方的文檔:https://router.vuejs.org/zh/guide/essentials/history-mode.html。如果,沒有設(shè)置,vue會默認(rèn)加一個#號,這樣,方便進(jìn)行路由的管理,做到頁面的平滑切換而不刷新。