[英]How to use $axios Nuxt module inside of setup() from composition API?
文檔說在methods/mounted/etc
內部使用this.$axios.$get()
,但是在setup()
內部調用時會拋出TypeError: _this is undefined
。 $axios
是否與組合 API 兼容?
為了澄清,我特意談論的是 axios nuxt 插件,而不僅僅是一般地使用 axios。 https://axios.nuxtjs.org/
因此,例如,這樣的事情會引發上面的錯誤
export default {
setup: () => {
const data = this.$axios.$get("/my-url");
}
}
import { useContext } from '@nuxtjs/composition-api';
setup() {
const { $axios } = useContext();
}
好的,所以使用 Nuxt 插件 aka plugins/vue-composition.js
的通常配置
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
nuxt.config.js
plugins: ['~/plugins/vue-composition']
然后您可以繼續測試頁面並運行此類代碼以獲得成功的 axios
<script>
import axios from 'axios'
import { onMounted } from '@vue/composition-api'
export default {
name: 'App',
setup() {
onMounted(async () => {
const res = await axios.get('https://jsonplaceholder.typicode.com/posts/1')
console.log(res)
})
},
}
</script>
在這種情況下,我不確定如何在全局范圍內導入 axios,但由於它是 API 的組成部分,因此您不要使用選項 API 鍵(已mounted
等)。
感謝這篇文章了解如何使用 Vue3: https://stackoverflow.com/a/65015450/8816585
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.