使用history.pushState(state,title,url)方法参数statestate对象是一个JavaScript对象,与pushState()创建的新的历史条目相关联。每当用户导航到新状态时,都会触发popstate(en-US)事件,并且该事件的状态属性包含历史条目状态对象的副本。状态对象可以是任何可以序列化的对象。因为Firefox将状态对象保存到用户的磁盘中,以便在用户重新启动浏览器后可以恢复它,所以我们对状态对象的序列化表示施加了640k字符的大小限制。如果将序列化表示大于此状态的状态对象传递给pushState(),该方法将抛出异常。如果您需要更多空间,我建议您使用sessionStorage或localStorage。title参数目前被大多数浏览器忽略,尽管它可能在未来被使用。在这里传递一个空字符串应该可以防止将来对该方法进行更改。或者,您可以为要移动的状态传递一个简短的标题。url可选新历史条目的URL由该参数指定。请注意,浏览器在调用pushState()后不会尝试加载此URL,但可能会在稍后尝试加载该URL,例如在用户重新启动浏览器之后。新URL不必是绝对的。如果是相对的,则相对于当前URL进行解析。新URL必须与当前URL具有相同的来源;否则,pushState()将抛出异常。如果未指定此参数,则将其设置为文档的当前URL。结合vue-routerhook函数,将url设置为当前页面的url。自己实战的代码:beforeRouteUpdate(to,from,next){//判断是否点击后退按钮,当点击后退按钮时,当前url与to.fullPath相同if((location.pathname+location.search)==to.from.fullPath){history.pushState(null,null,location.href);返回}}结束!欢迎指教,虚心好学!
