我目前在 NuxtJS 中遇到问题,其中方法被两次调用,因此两次请求发送。

这是在页面中发生的,被调用两次的方法是创建的()。

我使用参数打开页面,如下所示:

http://localhost:3000/mypage?token=123123123

在页面的created()方法中,我称为商店调度。
created() {
    if (this.token === undefined || this.token === null) {
      this.$router.push('/login')
    } else {
      console.log('called created() and sent dispatch')
      this.$store.dispatch('thirdPartyLogin', {
        token: this.token
      })
    }
  },

token 是通过data属性进行解析的:
data() {
    return {
      token: this.$nuxt.$route.query.token
    }
  },

问题在于它是一次性 token ,这意味着一次使用后无效。因此,在第二次调用后,将无法再成功进行请求。

为什么页面被创建两次或created()被调用两次?

vue.js - NuxtJS页面创建两次-LMLPHP

最佳答案

created()和beforeCreate()是两个在服务器端和客户端都调用的救生钩。 (您还将在终端中看到一个控制台日志,因为服务器正在触发i)

如果您想一次执行此操作,则可以:

a)使用Mounted()钩子(Hook)

b)如果需要在挂载之前完成操作,则必须在创建的方法process.client中使用if语句。如果if语句将检查您是否在客户端(浏览器端),请执行此操作

created(){
  if(process.client){
    //...your action here
  }
}

关于vue.js - NuxtJS页面创建两次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60411436/

10-09 18:07
查看更多