Function 如何在NUXT中为调用API设置全局函数?
谷歌搜索了一段时间后, 我在plugins/callApi.js中这样做Function 如何在NUXT中为调用API设置全局函数?,function,api,vue.js,nuxt.js,global,Function,Api,Vue.js,Nuxt.js,Global,谷歌搜索了一段时间后, 我在plugins/callApi.js中这样做 import axios from 'axios'; import Vue from 'vue'; Vue.use(callApi); export default async (apiUrl, postData, headers = {}) => { let msg = await axios.post(https://my-api-location.com' + apiUrl,postData); re
import axios from 'axios';
import Vue from 'vue';
Vue.use(callApi);
export default async (apiUrl, postData, headers = {}) => {
let msg = await axios.post(https://my-api-location.com' + apiUrl,postData);
return msg.data;
};
然后在nuxt.config.js中设置
plugins: [
'~plugins/callApi.js']
当我想用它的时候
const msgData = await callApi('/api/news/getNewsList', postData);
if (msgData.response === 'success') { .......
但当我启动Thread dev时,它会高亮显示“Vue.use(callApi);”部分,并说“callApi未定义”
我怎么能修好它?非常感谢:)我实际上重新阅读了你的答案,因为我有点困惑 因此,在callApi.js中,您定义了您想要的内容,但是您在实际定义callApi的文件中调用了Vue.use(callApi) 在编译器转到Vue.use(callApi)的那一刻,这个变量“callApi”还没有定义(因为它只有在编译完这个文件后才可用) 所以,就这样做吧
import axios from 'axios';
import Vue from 'vue';
export default async (apiUrl, postData, headers = {}) => {
let msg = await axios.post(https://my-api-location.com' + apiUrl,postData);
return msg.data;
};
然后,通过在nuxt.config文件中的plugins属性上设置插件路径(与您所做的完全相同),将自动调用callApi文件(尝试在callApi文件中放置控制台日志,在启动应用程序时您将看到它被记录)
你想要什么的一个例子:
现在在你的插件中,你必须决定你想要做什么。您可能希望公开该函数或使其全局可用,这取决于您
对于最后一个选项,您可能希望在此处查看:
祝你好运 非常感谢!!让我更了解Vue.use()