Nuxt - 如何找到以前的路线?

asa*_*nas 5 vue.js vuejs2 nuxt.js

我可以用来this.$router.go(-1)将用户重定向到之前的路线。但是,我无法理解如何在重定向之前获取有关先前路线的信息。

基本上,通过首先阅读前一条路由是什么,我想确保前一条路由来自同一个域,然后才重定向到它,否则做其他事情。

Zoh*_*oha 12

在 nuxt 静态方法中,您可以访问 nuxt 上下文ex: asyncData or middlewares

asyncData({from}){
    // do something with from
}
Run Code Online (Sandbox Code Playgroud)

但如果你想在 vue 实例中获取上一条路由,你可以使用

this.$nuxt.context.from

另外,请记住,from如果浏览器历史记录中没有任何上一页,则可能未定义


Dav*_* Go 7

在您的页面中,您可以添加asyncData可以访问context具有属性的对象的钩子from

asyncData({ from }) {
  console.log(from);
}
Run Code Online (Sandbox Code Playgroud)

  • 即使组件不使用 `asyncData`:`this.$nuxt.context.from` (9认同)

Rad*_*iță 3

没有现成的方法可以获取此信息。

您可以做的是将 abeforeRouteEnter作为全局守卫并在导航到新路线之前保存路线。

然后你可以检查是否有以前保存的路线并执行this.$router.go(-1)

如果您在模式下使用路由器,history您可能会想使用Historyvue-router 所使用的 api 来获取此信息。但 HistoryApi 不允许这样做,因为这将是一个巨大的隐私问题。您可以在当前选项卡中查看用户的完整历史记录。