1 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
1.在router.js里面,
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
//真正起作用的是這里,else里面的if刪除了,免得誤導(dǎo)
return savedPosition
} else {
return { x: 0, y: to.meta.savedPosition || 0 }
}
},
2.在router.js里面需要記錄位置的單頁面里面
meta: {
title: '列表頁',
keepAlive:true
},
3.App.vue里面
<div id="app">
<keep-alive >
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
</div>
這樣寫的意義就是不緩存所有頁面,哪個(gè)地方寫了 keepAlive:true,哪個(gè)地方就記錄位置(加緩存)
4.位置確實(shí)記錄上了(加緩存,返回不刷新頁面),也就是說,返回不觸發(fā)created,所以有些頁面需要返回觸發(fā)的東西都寫在activated里面。其實(shí)整個(gè)過程很簡單,代碼也很干練,因?yàn)檫@是路由自帶的功能,只不過之前沒有發(fā)現(xiàn)罷了
添加回答
舉報(bào)