VUE.js中訪問地址的url帶有#的問題

在開發的過程當中會發現,訪問VUE的項目是會在訪問地址後面加上#,這個#實際上是VUE的HASH模式所產生的,正確點來講是由於VUE使用了HASH模式。vue

那麼先說若是不想有#應該怎麼作:修改路由Router的mode爲history便可
例如在vue init webpack my-project建立項目完畢之後,在src->router->index.js裏修改webpack

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  mode: 'history'  //把Router的mode修改成history模式,VueRouter默認的模式爲HASH模式
})

以上爲解決辦法。web


那麼稍微說一下HASH模式和history模式到底是什麼
首先VUE一般開發爲單頁面應用(SPA):
SPA百度百科https://baike.baidu.com/item/...
那麼既然是單頁面應用,當用戶要點擊其餘組件訪問頁面內的其餘模塊時,系統怎麼樣也要獲取一個參數,而後根據這個參數返回不一樣的模塊給用戶使用,這時候就會有一個問題,這個傳遞的參數只放在後臺處理的話是能夠正常運做的,但若是用戶使用了瀏覽器的 前進、後退、跳轉 這三個功能呢,由於是單頁面應用,訪問地址是不變的,因此瀏覽器的 前進、後退、跳轉 沒法使用,那麼要怎麼辦呢,只能是從訪問地址動手腳了。vue-router

HASH模式:
HASH模式就是從訪問地址動手腳,在訪問地址的後面增長#而且帶上須要的參數,這樣後臺就能對不一樣的參數顯示不一樣的模塊,並且 #以及後面的參數是不會被包含在HTTP請求中,所以對服務器的請求是沒有影響的,更改參數也不會刷新頁面。例子:網易雲音樂的官網https://music.163.com/#瀏覽器

history模式:
history模式也是從訪問地址動手腳,可是再也不使用#,而是想普通的訪問地址那樣使用/,但若是這樣請求的話,服務器是須要另外配置才行,要否則容易出現404錯誤,具體怎麼配置請自行百度。服務器

以上爲我對兩種模式的簡單理解,若有錯誤還請指點code

相關文章
相關標籤/搜索