如何在 NUXT 中设置调用 Apis 的全局函数?
how can I set a global function for call Apis in NUXT?
经过一些 google 搜索后,
我在 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);
return msg.data;
};
然后设置在nuxt.config.js
plugins: [
'~plugins/callApi.js']
想用的时候
const msgData = await callApi('/api/news/getNewsList', postData);
if (msgData.response === 'success') { .......
但是当我启动 yarn dev 时,它突出显示“Vue.use(callApi);”部分并说“callApi 未定义”
我怎么解决不了?非常感谢:)
我实际上 re-read 你的回答是因为我有点困惑。
因此,在您的 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 文件中设置插件 属性 的插件路径(完全按照您的方式),将自动调用 callApi 文件(尝试将控制台登录您的 callApi 文件,您将在启动应用程序时看到它的日志记录。
你想要的例子:
https://codesandbox.io/s/nuxt-app-demovue-ssr-forked-s94rz?file=/pages/index.vue
现在在你的插件中,你必须准确地决定你想做什么。您可能想要公开该功能或使其在全球范围内可用,这取决于您!
对于最后一个选项,您可能想在此处查看:
祝你好运!
经过一些 google 搜索后, 我在 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);
return msg.data;
};
然后设置在nuxt.config.js
plugins: [
'~plugins/callApi.js']
想用的时候
const msgData = await callApi('/api/news/getNewsList', postData);
if (msgData.response === 'success') { .......
但是当我启动 yarn dev 时,它突出显示“Vue.use(callApi);”部分并说“callApi 未定义”
我怎么解决不了?非常感谢:)
我实际上 re-read 你的回答是因为我有点困惑。
因此,在您的 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 文件中设置插件 属性 的插件路径(完全按照您的方式),将自动调用 callApi 文件(尝试将控制台登录您的 callApi 文件,您将在启动应用程序时看到它的日志记录。
你想要的例子:
https://codesandbox.io/s/nuxt-app-demovue-ssr-forked-s94rz?file=/pages/index.vue
现在在你的插件中,你必须准确地决定你想做什么。您可能想要公开该功能或使其在全球范围内可用,这取决于您!
对于最后一个选项,您可能想在此处查看:
祝你好运!