簡體   English   中英

為什么axios請求在vue.js(nuxt.js)方法中不起作用

[英]Why axios request not working inside vuejs (nuxt.js) methods

我已經在nuxt.js應用程序中安裝了axios。 這是我的配置文件代碼:

文件: nuxt.config.js

modules: [
  '@nuxtjs/vuetify',
  '@nuxtjs/axios',
],

axios: {
  // proxyHeaders: false
}

這是我的示例工作代碼:

export default {
  data() {
    return {
      ip: ''
    }
  },
  async asyncData({ $axios }) {
    const ip = await $axios.$get('http://icanhazip.com')
    return { ip }
  }
}

這是我不工作的代碼:

export default {
  data() {
    return {
      ip: ''
    }
  },
  methods: {
    async asyncData() {
      const ip = await this.$axios.$get('http://icanhazip.com')
      this.ip = ip
    }
  } 
}

為什么axios請求的內部methods不起作用?

您不能在方法對象中調用asyncData。 asyncData僅用於預渲染。

將函數重命名為其他名稱,應該沒問題:

export default {
  data() {
    return {
      ip: ''
    }
  },
  methods: {
    async getData() {
      const ip = await this.$axios.$get('http://icanhazip.com')
      this.ip = ip
    }
  } 
}

同樣,如上例所示,在使用asyncData時,請勿在數據函數中初始化“ ip”。 無論如何,從asyncData返回的內容都會合並到數據中。

每次在加載頁面之前都會調用AsyncData方法,另外請注意,asyncdata僅在nuxt的頁面組件中可用。 您無法通過asyncData內部的實例訪問組件實例,因為在啟動組件之前會調用它。 您可以使用模板中asyncData數據返回的數據,而無需初始化數據。

Nuxt asyncData

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM