vue初始化时router.push跳转的b页面,后退之后却不会返回到之前页面是什么原因?

// a页面
const init = () => {
  setTimeout(() => {
    // 调转b页面
    router.push('/b' + location.search)    
  }, 100)
}

onMounted(() => {
  nextTick(() => {
    init()
  });
});

从b页面后退之后却不会返回到a页面?这是什么原因?

阅读 1.4k
3 个回答

你在a页面这么写,从b页面返回到a页面后,重新执行onMounted内的函数不是又跳回b页面了吗?
如果a页面没有使用keepalive缓存,那么每次返回a页面都会重新执行onMounted生命周期函数

因为a页面没有进行缓存,后退到a页面后会重新执行onMounted钩子函数,执行后就再次导航到b页面了。

router.replace('/b' + location.search)

使用这个试试呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题