在Vue 3中封装接口,通常可以使用axios
或类似的库来进行网络请求,并将请求封装成一个独立的模块,方便在应用中重复使用和管理。下面是一个简单的示例,演示如何在Vue 3中封装接口
1,首先 安装并导入 axios库 可以使用npm或ayrn来安装
npm install axios --save
2,创建一个,api.js文件来管接口封装:
// api.js import axios from 'axios'; const API_BASE_URL = 'https://api.example.com'; // 根据实际情况设置基础URL const apiClient = axios.create({ baseURL: API_BASE_URL, // 其他axios配置选项 }); // 封装具体的接口请求函数 const api = { async getPosts() { try { const response = await apiClient.get('/posts'); return response.data; } catch (error) { console.error('获取帖子失败:', error); throw error; } }, async createPost(postData) { try { const response = await apiClient.post('/posts', postData); return response.data; } catch (error) { console.error('创建帖子失败:', error); throw error; } }, // 可以继续添加其他接口请求函数 }; export default api;
3.在Vue组件中使用封装的接口:
<template> <div> <ul> <li v-for="post in posts" :key="post.id"> {{ post.title }} </li> </ul> <form @submit.prevent="submitForm"> <input type="text" v-model="newPost.title" placeholder="请输入标题"> <button type="submit">提交</button> </form> </div> </template> <script> import { ref, reactive } from 'vue'; import api from './api'; // 导入封装的接口 export default { setup() { const posts = ref([]); // 使用ref定义一个响应式变量 const newPost = reactive({ title: '' }); // 使用reactive定义一个响应式对象 const fetchPosts = async () => { try { const data = await api.getPosts(); // 调用封装的接口函数 posts.value = data; } catch (error) { // 处理错误 } }; const submitForm = async () => { try { await api.createPost(newPost); // 调用封装的接口函数 newPost.title = ''; // 清空输入框 fetchPosts(); // 重新获取帖子列表 } catch (error) { // 处理错误 } }; fetchPosts(); // 在组件初始化时获取帖子列表 return { posts, newPost, submitForm, }; }, }; </script>