// 导入vue-axios模块
import VueAxios from 'vue-axios'
import axios from 'axios';
app.use(VueAxios, axios)
...
<script setup lang="ts">
import { ref, computed, watch, onMounted } from 'vue'
//需要重新导入axios,否则提示我函数内的axios找不到,去掉下面这句话就报错,或者忽略ts语法
import axios from 'axios';
// 调用名人名言接口
const text = ref('')
function FamousQuotes() {
let api = `/api/mingyan?token=wPsstR6XUhVezM8Y&format=json&typeid=1`
axios
.get(api)
.then((res: any) => {
// console.log(res.data)
text.value = res.data.data.content
console.log(text.value)
})
}
onMounted(() => {
axios.defaults.baseURL = '/api'
FamousQuotes()
})
script>
文档里说的挺清楚的,如果要在setup
中使用,需要使用provide
进行全局注入,然后在setup
中使用inject
进行提取。
https://github.com/imcvampire/vue-axios
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import store from './store'
import axios from 'axios'
import VueAxios from 'vue-axios'
const app = createApp(App).use(store)
app.use(VueAxios, axios)
app.provide('axios', app.config.globalProperties.axios) // provide 'axios'
app.mount('#app')
// App.vue
import { inject } from 'vue'
export default {
name: 'Comp',
setup() {
const axios: any = inject('axios') // inject axios
const getList = (): void => {
axios
.get(api)
.then((response: { data: any }) => {
console.log(response.data)
});
};
return { getList }
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: