【问题标题】:Nuxt.js: how to redirect inside methodsNuxt.js:如何重定向内部方法
【发布时间】:2021-06-30 02:12:48
【问题描述】:

我正在学习 Nuxt.js,但我对通过单击触发的方法简单地将用户重定向到另一个页面似乎有多么困难感到困惑。

设置如下:我正在使用 Nuxt Auth 对用户进行身份验证,一旦通过身份验证,我希望将他们从注册页面转发到另一个路由。我已经设置了重定向登录用户的中间件,但它仅在我刷新页面时触发,而不是在我第一次登录时触发。

我有这样的方法:

async login(event) {
   event.preventDefault()
   try {
      await this.$auth.loginWith('local', this.loginData)
      // this is where my redirect logic should go
   } catch(error) { ... }
}

到目前为止,我已经尝试过使用 this.$nuxt.refresh(),它根本没有做任何事情,我也尝试过 this.$router.push('/route'),它似乎完全挂起页面。理想情况下,我更喜欢refresh 方法,这样我就不必为多个地方的登录用户指定登录页面,但我还需要知道如何在方法中使用重定向,我认为应该是可以想象到的最简单的操作,但似乎很难找到。

任何提示将不胜感激!

更新:

我找到了一个解决方案,虽然它不是一个理想的解决方案。我在beforeCreate 中添加了一个if 语句来检查this.$auth.loggedIn,如果它是真的,那么当在nuxt.config.js 中定义了“home”时,它会调用this.$auth.redirect('home')。这个解决方案不理想的原因是它依赖于 auth 模块(而不是一般的重定向机制)。

【问题讨论】:

    标签: vue.js routes nuxt.js


    【解决方案1】:

    如果this.$router 不起作用,试试这个

    this.$nuxt.$options.router.push(url);
    

    【讨论】:

      【解决方案2】:

      在 Nuxt 中有一种方法可以像这样重新加载页面:

      this.$router.go(0)
      

      您也可以找到更多信息here

      【讨论】:

        猜你喜欢
        • 2018-10-10
        • 2020-06-12
        • 2014-07-20
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 2020-08-01
        • 1970-01-01
        • 2022-11-15
        相关资源
        最近更新 更多