1: hash
2: history
區別: 前者地址欄會帶有#,后者沒有,顯得美觀一點
路由原理:前段路由實現本質是監聽URL的變化,然后匹配路由規則顯示相應頁面,並且無須刷新。
hash模式:
a: 點擊或瀏覽器歷史跳轉時,觸發onhashchange事件,然后根據路由規則匹配顯示相應頁面(遍歷路由表,裝載相應組件到router-link);
b: 手動刷新時,不會像服務器發送請求(不會觸發onhashchange),觸發onload事件,然后根據路由規則匹配顯示相應頁面;
history模式:
a:跳轉時會調用history.pushState方法,根據to屬性改變地址,並切換相應組件到router-link;
b:瀏覽器歷史操作(前進,后退),只會改變地址欄(頁面內容不會變),不會切換組件,需要使用popstate方法來切換組件;
c: 手動刷新,需要后端配合重定向,不然404