循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理(1)

最后

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

class ColorPoint extends Point {

}

上面代码定义了一个ColorPoint类,该类通过extends关键字,继承了Point类的所有属性和方法。

有了这些知识准备,那么我们来定义一个API接口的封装类,如下 base-api.js 代码所示。

// 定义框架里面常用的API接口:Get/GetAll/Create/Update/Delete/Count等

export default class BaseApi {

constructor(baseurl) {

this.baseurl = baseurl

}

// 获取指定的单个记录

Get(data) {

return request({

url: this.baseurl + ‘Get’,

method: ‘get’,

params: data

})

}

// 根据条件获取所有记录

GetAll(data) {

return request({

url: this.baseurl + ‘GetAll’,

method: ‘get’,

params: data

})

}

// 创建记录

Create(data) {

return request({

url: this.baseurl + ‘Create’,

method: ‘post’,

data: data

})

}

// 更新记录

Update(data) {

return request({

url: this.baseurl + ‘Update’,

method: ‘put’,

data: data

})

}

// 删除指定数据

Delete(data) {

return request({

url: this.baseurl + ‘Delete’,

method: ‘delete’,

params: data

})

}

// 获取条件记录数量

Count(data) {

return request({

url: this.baseurl + ‘Count’,

method: ‘post’,

data: data

})

}

}

以上我们定义了很多常规的ABP后端接口的封装处理,其中我们调用的地址通过组合的方式处理,而具体的地址则交由子类(业务对象API)进行赋值处理。

加入我们定义子类有DIctType、DictData等业务类,那么这些类继承BaseApi,就会具有相关的接口了,如下所示继承关系。

在这里插入图片描述

例如,我们对于DictDataApi的JS类定义如下所示。

在这里插入图片描述

通过一行代码 export default new Api(’/abp/services/app/dictdata/’) 就可以构造一个子类实例供使用了。

对于DictTypeApi来说,处理方式也是类似,继承自基类,并增加一些自己的接口实现即可。

在这里插入图片描述

这些API类的文件视图如下所示。

在这里插入图片描述

有了这些准备,我们就可以在视图页面类中导入这些定义,并使用JS类了。

// 业务API对象

import dicttype from ‘@/api/dicttype’

import dictdata from ‘@/api/dictdata’

加入我们要在视图页面中查询结果,直接就可以通过使用dictdata或者dicttype对象来实现对应的API调用,如下代码所示。

getlist() {

// 构造常规的分页查询条件

var param = {

SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize,

MaxResultCount: this.pageinfo.pagesize,

// 过滤条件

Name: this.searchForm.name,

Remark: this.searchForm.remark,

DictType_ID: this.searchForm.dictType_ID

};

// 获取产品列表,绑定到模型上,并修改分页数量

this.listLoading = true

dictdata.GetAll(param).then(data => {

this.list = data.result.items

this.pageinfo.total = data.result.totalCount

this.listLoading = false

})

}

或者如下代码所示。

// 删除指定字典类型

deleteDictType() {

if (!this.searchForm.dictType_ID || typeof (this.searchForm.dictType_ID) === ‘undefined’) {

return;

}

this.$confirm(‘您确认删除选定类型吗?’, ‘操作提示’,

{

type: ‘warning’ // success,error,info,warning

// confirmButtonText: ‘确定’,

// cancelButtonText: ‘取消’

}

).then(() => {

var param = { id: this.searchForm.dictType_ID }

dicttype.Delete(param).then(data => {

if (data.success) {

// 提示信息

this.$message({

type: ‘success’,

message: ‘删除成功!’

})

// 刷新数据

this.getTree();

总结

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

前端面试题汇总

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

JavaScript

性能

linux

战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

JavaScript

性能

linux

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值