技术文摘
Vue3 与 TypeScript 如何封装 Axios 并使用 Mock.js
Vue3 与 TypeScript 如何封装 Axios 并使用 Mock.js
在 Vue3 项目中,结合 TypeScript 进行开发能极大地提升代码的可维护性和类型安全性。而 Axios 作为常用的 HTTP 库,对其进行合理封装能让代码更加优雅。Mock.js 可以模拟数据,方便开发与测试。下面就来详细介绍如何实现这些功能。
安装必要的依赖。使用 npm 分别安装 axios 和 mockjs:npm install axios mockjs --save。
接着进行 Axios 的封装。在项目中创建一个 api 文件夹,在其中新建 axios.ts 文件。引入 Axios 并创建实例:
import axios from 'axios';
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 5000
});
这里设置了基础 URL 和超时时间。然后,为了处理请求拦截和响应拦截,可以这样添加代码:
service.interceptors.request.use(
config => {
// 可以在这里添加请求头,例如 token
return config;
},
error => {
return Promise.reject(error);
}
);
service.interceptors.response.use(
response => {
const res = response.data;
if (res.code!== 200) {
// 处理错误情况
return Promise.reject(new Error(res.message || 'Error'));
} else {
return res;
}
},
error => {
return Promise.reject(error);
}
);
至此,Axios 封装完成。
接下来使用 Mock.js 模拟数据。在 api 文件夹下创建 mock 文件夹,新建 user.ts 文件。例如模拟获取用户列表的接口:
import Mock from'mockjs';
const data = Mock.mock({
'list|10': [
{
id: '@id',
name: '@name',
age: '@integer(18, 60)'
}
]
});
Mock.mock('/api/user/list', 'get', data);
在组件中使用封装的 Axios 时,先引入封装的 service:
import { defineComponent } from 'vue';
import service from '@/api/axios';
export default defineComponent({
setup() {
const getUserList = async () => {
try {
const res = await service.get('/api/user/list');
console.log(res);
} catch (error) {
console.error(error);
}
};
getUserList();
}
});
通过以上步骤,我们成功在 Vue3 和 TypeScript 项目中封装了 Axios 并使用 Mock.js 模拟数据,为开发和测试带来了极大的便利。
TAGS: Vue3 TypeScript mock.js Axios封装
- 借助 React Query 与数据库实现数据导入导出
- CSS Positions布局:实现多层叠加效果的方法
- 深入解析 React 生命周期:组件生命周期的合理管理方法
- Css Flex弹性布局创建复杂导航菜单的方法
- React Query 数据库插件:数据分页最佳实践指南
- 在 React Query 里怎样达成数据库的即时复制
- React Redux教程:用Redux管理前端状态的方法
- React 响应式设计秘籍:打造自适应前端布局效果
- React Query中优化数据库查询的前端性能方法
- 深入解析 Css Flex 弹性布局原理与优势
- React性能优化:提升前端应用加载速度指南
- CSS Positions布局助力网页实现瀑布流效果的方法
- 灵活运用Css Flex弹性布局实现网页布局的方法
- React Query数据库插件实现数据压缩和解压缩方法
- 借助 React 与 MongoDB 打造可扩展数据库应用的方法