在Quasar V2中使用组合API(Composition API)设置函数访问配置的启动文件中的Axios实例,可以通过以下步骤实现:
如果你还没有安装Axios,可以使用以下命令安装:
npm install axios
在Quasar项目中,启动文件通常位于 src/boot
目录下。你可以在这里创建一个新的启动文件(例如 axios.js
)来配置Axios实例。
src/boot/axios.js
import { boot } from 'quasar/wrappers';
import axios from 'axios';
const api = axios.create({
baseURL: 'https://api.example.com', // 替换为你的API基础URL
timeout: 1000,
headers: { 'X-Custom-Header': 'foobar' }
});
export default boot(({ app }) => {
// 将Axios实例挂载到Vue实例上
app.config.globalProperties.$axios = axios;
app.config.globalProperties.$api = api;
});
export { api };
你可以在组合API函数中使用配置好的Axios实例。为了方便访问,你可以使用Quasar的 useQuasar
钩子来获取全局属性。
import { ref } from 'vue';
import { useQuasar } from 'quasar';
import { api } from 'boot/axios';
export function useFetchData() {
const $q = useQuasar();
const data = ref(null);
const error = ref(null);
const loading = ref(false);
const fetchData = async (endpoint) => {
loading.value = true;
try {
const response = await api.get(endpoint);
data.value = response.data;
} catch (err) {
error.value = err;
$q.notify({
type: 'negative',
message: 'Failed to fetch data'
});
} finally {
loading.value = false;
}
};
return {
data,
error,
loading,
fetchData
};
}
你可以在组件中使用组合API函数来获取数据。
<template>
<div>
<q-btn @click="loadData">Load Data</q-btn>
<div v-if="loading">Loading...</div>
<div v-if="error">{{ error.message }}</div>
<div v-if="data">{{ data }}</div>
</div>
</template>
<script setup>
import { useFetchData } from 'path/to/your/composable';
const { data, error, loading, fetchData } = useFetchData();
const loadData = () => {
fetchData('/your-endpoint');
};
</script>
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云