vueRouter是前端路由,當路徑切換的時候在瀏覽器端判斷當前路徑,並加載當前路徑對應的組件,它有兩種模式:一種是Hash模式,一種是History模式
Hash模式:是以url中#后面的內容作為路由地址,可以直接通過location.url來切換瀏覽器的地址,如果只改變了#后面的內容,瀏覽器不會向服務器請求這個地址,但是會把這個地址記錄在瀏覽器的訪問記錄中,當hash改變后,要監聽hash的變化,並做相應的處理,我們可以監聽hashchange事件,當hash發生變化時,會觸發hashchange事件,在hashchange事件中記錄當前路由地址,並找到當前路由對應的組件,重新渲染在瀏覽器中
History模式:路徑就是普通的url,通過history.pushState()方法來改變地址欄,並把當前地址記錄在瀏覽器的訪問歷史中,並不會真正的跳到指定的路徑,也就是瀏覽器不會向服務器發送請求。通過監聽popstate事件,可以監聽到瀏覽器歷史操作的變化,在popstate事件中可以記錄瀏覽器地址欄改變后的地址,要注意的是,調用history.pushSate()和history.replaceState()不會觸發popstate事件,只有點擊瀏覽器的前進后退按鈕及調用history.forward()、history.back()、history.go()方法時才會觸發popstate事件。最后通過路由找到對應的組件,渲染在瀏覽器中
注:vueRouter的history模式並不會向服務器發送請求,是因為vue-cli對history模式做了處理
