-
scrollBehavior(只在支持history.pushState的瀏覽器可用)
使用場(chǎng)景:點(diǎn)擊瀏覽器自帶的前進(jìn)或后退鍵,想讓頁(yè)面滾到頂部,或者是保持原來(lái)的滾動(dòng)位置,vue-router可以做的更好
1.返回上一路由原滾動(dòng)條位置
例:
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Rotuer({
mode:"history",
scrollBehavior(to,from,savePosition){
//saveposition:記錄滾動(dòng)條的坐標(biāo),點(diǎn)擊前進(jìn)后退時(shí)記錄值{x:?,y:?}
if(saveposition){
return saveposition;
}else{
return {x:0,y:0}
}
}
routes:[
{
}
]
})
2.返回上一路由設(shè)置的hash位置
頁(yè)面上:
<template>
<div>
<p @click="goNext()">滾動(dòng)條返回當(dāng)前位置</p>
</div>
</template>
export defauit{
data(){
return{
}
},
methods:{
goNext(){
let _this=this;
_this.$router.push("/home#id")
}
}
}
路由中:
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Router({
mode:"histtory",
scrollBehavior(to,from,savePosition){
if(to.hash){ //判斷是否含有hash
return {selector:to.hash} //跳轉(zhuǎn)到錨點(diǎn)
}
}
})