代码之家  ›  专栏  ›  技术社区  ›  IVR

Nuxt.js:如何在方法内部重定向

  •  0
  • IVR  · 技术社区  · 5 年前

    我正在学习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 这样我就不必在多个地方为登录用户指定登录页面,但我还需要知道如何在方法中使用重定向,我认为这应该是可以想象到的最简单的操作,但似乎很难找到。

    任何建议都将不胜感激!

    更新:

    我找到了一个解决方案,尽管它不是一个理想的解决方案。我添加了一个if语句 beforeCreate 这检查 this.$auth.loggedIn 如果这是真的,那么它就会召唤 this.$auth.redirect('home') 当“家”在 nuxt.config.js 在auth重定向下。此解决方案不理想的原因是它依赖于身份验证模块(而不是通用的重定向机制)。

    0 回复  |  直到 5 年前
        1
  •  0
  •   SaboSuke    5 年前

    Nuxt中有一种方法可以重新加载页面,如下所示:

    this.$router.go(0)
    

    您还可以找到更多信息 here

        2
  •  0
  •   iminiki Shivam Krishna    4 年前

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

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