最近在用vue的时候突然想到一个问题首先,我们知道vue实现的单页应用中一般不会去刷新页面,因为刷新之后页面中的vuex数据就不见了。其次,我们也知道一般情况下,url变更的时候,比如指定location.href、history.push、replace等,页面就会刷新。没刷新页面,又要改变url,加载新内容怎么做的?去翻了一下vue-router的源码,找到这样一段再看看方法内部答案就是html5在history中新增加的方法:pushState和replaceState。这个state可以在history或者popstate的事件中看到history中的popstate中的title这个参数目前没什么用处,可能是给以后预留的参数,暂时用null就好了url很明显,就是替换后的url了。url可以接受绝对地址和相对地址,设置绝对地址的时候,要保证域名和当前域名一致,否则汇报如下错误

详解从Vue-router到html5的pushState

详解从Vue-router到html5的pushState

详解从Vue-router到html5的pushState