hash 和 history
對于 vue 這樣的前端框架來說為了開發(fā) spa (單頁面應用程序),spa的渲染都是在瀏覽器中完成,這就需要前端路由(改變?yōu)g覽器的url 而不會發(fā)請求),這也時 vue-router 存在的意義。
1.hash:就是 url 后面的#,它的的特點就是改變 # 后面的內容而不會使瀏覽器發(fā)送 url 請求。
2.history:vue-router 利用了 html5 新增的 pushState() 和 replaceState() 方法,這兩個方法應用于瀏覽器的 url 歷史記錄中,它們可以修改歷史記錄, 但修改了 url 并不會使瀏覽器發(fā)送 http 請求。
hash 和 history 的使用區(qū)別
雖然它們都不會使得瀏覽器發(fā)送 http 請求,但要注意以下區(qū)別:
hash:瀏覽器刷新后,瀏覽器還是會請求 # 之前的 url,不會有 404 的問題。
history: 它會改變?yōu)g覽器的當前 url ,一旦不小心刷新了瀏覽器并且后端又沒有與其匹配的路由,那么會發(fā)生 404 問題,所以要用 history 就最好還要和后端配合。