场景模拟
- 情景一:
AB页面,A是提交信息页面,B是结果页
A提交完信息后,动态渲染出B,当B页面渲染出来后,再次刷新页面,就会显示A页面,但是希望显示B页面。
- 场景二
视频列表的播放
点击视频列表后,应该更改页面的url参数,但是不立即刷新页面,而是在随后的刷新,刷新点击后的页面
https://developer.mozilla.org/zh-CN/docs/Web/API/History
csdn
利用HTML5的history.replacestate()修改当前页面的URL
function changeURLParam(name, value) {var url = document.URL,resultUrl = ''var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')var r = window.location.search.substr(1).match(reg)var replaceText = name + '=' + valueif (r != null) {var tmp = url.replace(unescape(name + '=' + r[2]), replaceText)resultUrl = tmp} else {if (url.match('[?]')) {resultUrl = url + '&' + replaceText} else {resultUrl = url + '?' + replaceText}}history.replaceState(null, null, resultUrl)}changeURLParam('video_id', currentVideoId)//----var stateObject = { result: true }; //可以传递参数var title = "Wow Title";var newUrl = location.href;history.replaceState(stateObject, '', newUrl);console.info('history', history);## 对于vuethis.$router.replace({ query: { ...this.$route.query, token: '1111' } })
