前言
这是一个浏览器BOM的相关问题,主要是
history
和
location
。现在一半在
vue
或
react
等框架里边会较少直接使用,因为他们都有封装好的
api
可以调用.
解决方法
resolve 一
由于锚点
href= "#xxx"
的点击,浏览器会在
history
对象中记录一次页面,导致使
用this.$router.go(-1)
时还在跳当前页面
location.replace("/abc/ddd/balabala")
location.replace() 方法以给定的 URL 来替换当前的资源。与 assign() 方法 不同的是,调用 replace() 方法后,当前页面不会保存到会话历史中(session History),这样,用户点击回退按钮时,将不会再跳转到该页面。
resolve 二
不使用
a标签href="#xxx"
为锚点,使用
scrollIntoView
快速定位
官方地址
element.scrollIntoView(); // 等同于 element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean 型参数
element.scrollIntoView(scrollIntoViewOptions); // Object 型参数
起因
在项目中使用了
ant-design-vue
组件库,然后使用
a标签
这个居然会被隐藏
// 在返回上一页的事件方法中调用了如下语句
this.$router.go(-1) // 相当于history.go(-1) 或 window.history.go(-1)
当我在点击了一次带有
href="#xxx"
的锚点时,在history里就被记录了一次,history.length 就增加了