一切福田,不離方寸,從心而覓,感無不通。

Vue 魔法师 —— 将 API “类化”

前言

【类】和【接口】是 JavaScript 未来的方向,我们的 API 调用也将如此,朝着这个方向和业务模块同步分类、同步升级。本文讲的正是 —— Vue 魔法师,如何将 API “类化”?

万物皆模块,万物可归类。闲言少叙,直接正题。

分类 API

  • 环境: Vue2+ 或 Vue3+

咱这里直接 VueCLI 迅速快捷构建

得到如下目录

 

然后新建文件 api.js 如下,

 

基础类 API

我们先创建一个基础类如下:

 

  • baseUrl:设置请求根路径;
  • resource:来源;
  • getUrl:获取链接函数,包含 baseUrl、resource、id;
  • handleErrors:处理错误函数;

只读类 API

然后,我们再创建一个子类:包含 fetch、get 只读方法。

 

  • fetch:获取数据;
  • get:通过 id 获取数据;

写入类 API

接着,我们再创建一个包含可读写方法的子类:post、put、delete

 

  • post:创建数据;
  • put:更新数据;
  • delete:删除数据;

继承

让我们看看两个简单的继承示例:

 

 

【UsersApiService 类】继承了只读类 API —— ReadOnlyApiService,可以使用 fetch、get 两种方法。而 【PostsApiService 类】继承了读写类 API —— ModelApiService,可以使用 fetch、get、post、put、delete 五种方法。

我们也可以根据业务来写继承 API 类:

 

导出

我们在 api.js 导出这些 API:

 

分类 API 实践

在 Vue 项目中如何调用以上的 API 类?我们主要在 Vuex 和 components 中调用它:

storePlugins

  1. 先创建一个 storePlugins.js:

 

  1. 在 storePlugins.js 中引入 api.js:

 

  1. 在 src/store/index.js 中引入该插件:

 

mixins

  1. 创建 mixins.js 在如下位置:

 

  1. mixin.js:

 

  1. main.js 全局引入 mixins:

 

调用

OK!现在你就可以在 store 和 components 中调用了,例如:

 

示例

可本地调试~

  • components 中

 

  • store 中

 

结语

为什么要这么写?

本瓜以为:如果你的业务是按照这种类的方式有作区分,那么 API 也应该同步如此。一是思路清晰,跟着业务走;二是扩展性和复用性都更好;三是看起来就很高级……😀😀😀

  • 普通

 

 

  • 高级

 

 

本次就到这里,我是掘金安东尼,人不狠,话也多!公众号【掘金安东尼】。

点赞小手动一动,你我一起向前冲~ 再会~

作者:掘金安东尼
链接:https://juejin.cn/post/6920422878500519950
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。