vue-router两种模式的区别
1.hash模式
vue-router默认的是hash’[hæʃ] '模式,使用URL的hash来模拟一个完整的URL,于是当URL改变的时候,页面不会重新加载,也就是单页面应用了。当#后面的hash发生变化,不会导致浏览器向服务器发出请求,浏览器不会发出请求就不会刷新页面,并且会触发hasChange这个事件,通过监听hash值的变化来实现更新页面部分内容的操作。
对于hash模式会创建hashHistory对象,在访问不同的路由的时候,会发生两件事:
HashHistory.push()将新的路由添加到浏览器访问的历史的栈顶,和HasHistory.replace()替换到当前栈顶的路由。
2.history模式
因为HTML5标准的发布,多了两个API,pushState() 和 replaceState()。通过这两个API
(1)可以改变url地址且不会发送请求。
(2)不仅可以读取历史记录栈,还可以对浏览器历史记录栈进行修改。
除此之外,还有popState(),当浏览器跳转到新的状态时,将触发popState事件。
添加/修改历史状态
包括了pushState
,replaceState</