鍍金池/ 問(wèn)答/iOS  HTML/ 關(guān)于微信瀏覽器后退按鈕如何回到之前列表頁(yè)的指定位置

關(guān)于微信瀏覽器后退按鈕如何回到之前列表頁(yè)的指定位置

具體情況是我在微信中網(wǎng)頁(yè)開(kāi)發(fā),用的是vue,然后有個(gè)文章的列表,文章的鏈接是微信的鏈接點(diǎn)進(jìn)去之后就是微信的詳情頁(yè),這時(shí)候我回退的話(huà)就會(huì)重新刷新頁(yè)面,這樣就不太可能定位到之前看到列表的位置了,能有什么辦法可以解決么?

回答
編輯回答
落殤

1、使用keep-alive

<keep-alive>
    <router-view></router-view>
</keep-alive>

2、使用vue-router的鉤子函數(shù)

let indexScrollTop = 0
router.beforeEach((route, redirect, next) => {
  if (route.path !== '/') {
    indexScrollTop = document.body.scrollTop //開(kāi)始切換路由前將當(dāng)前頁(yè)面scrollTop存放到變量
  }
  next()
})

router.afterEach(route => {
  if (route.path !== '/') {
    document.body.scrollTop = 0
  } else {
    Vue.nextTick(() => {
      document.body.scrollTop = indexScrollTop //路由切換完成設(shè)置scrollTop
    })
  }
})
2017年10月26日 05:43
編輯回答
墨染殤

你這個(gè)不是后退頁(yè)面刷新,而是組件重繪,要實(shí)現(xiàn)你要的功能路由篇也說(shuō)明了,可以使用滾動(dòng)行為來(lái)實(shí)現(xiàn),不過(guò)路由模式有限制,你可以查看下文檔。

2017年4月14日 02:51
編輯回答
哚蕾咪
<keep-alive>
    <router-view v-if="needKeepAlive"></router-view>
</keep-alive>
<router-view v-if="!needKeepAlive"></router-view>

可以使用keepalive
2017年8月24日 13:01