uniapp 小程序封装异步(get/post/delete/put)共用(附全代码)
2019-09-18 08:49
537 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Ambitiouss/article/details/100971307
提出前景:
最开始学编程的时候呢,不知道写了多少重复代码....哈哈 嘲讽一下。后来出来上班了,前端架构师有要求。尽量压缩代码。 写好注释(因为一个人不可能一辈子只待在一个企业,这样的话有助于后来同事接手,和一个平台的稳定性)。这些观点非常 认同。
提出前问题:
小程序和vue也是这段时间学习。对我来说,刚学一种语言就要提出他的公共部分对我是有难 度的(不知道语法和vue能不能和js直接交互,怎样把需要重复使用的代码提出更好的公共脚本)。
尝试提出:
开始提出的时候呢,我以为直接创建一个工具文件夹,然后里面写.vue后缀文件异步代码export 导出,在需要使用的地方 导入就ok,然而想象很美好,现实很骨感啊。写了,尝试的时候呢:(由于是小程序嘛,uniapp编译,微信开发工具查看) 结果编译都失败....行吧网上找找资料吧.
正式提出:
咱们先来看看我的小程序目录结构
我打箭头哪里呢就是我提出异步共用模块在工程的位置。后续有共用代码都可以写成一个或多个文件反复这里,但是要记得导出,和需要用的地方导入。
哈哈,不知道怎么导出,导入?,来,我们接着看下面。我来教你(我也刚学会熟练。其实很简单的)
我就直接贴代码了(这部分是共用方法和怎么导出去)。
// 预处理返回的数据,防止后台服务不在线时,返回不合法数据 function preHandleResult(res) { // if (res.errMsg.trim() != "request:ok") { // showTip.showSuccessTip("后台服务不在线...", 2500); //} // success: (res) => { // console.log(1); // } } // 请求末尾加token function appendToken (url) { if (url.indexOf("?") == -1) { url += "?" } else { url += "&" } url += "access_token=" + accesstoken; return url; } // appendToken(url) function request_get (url, param, successCallback, failCallback) { var _this = this; uni.request({ url: url, data: param, dataType: 'json', method: 'GET', header: { 'custom-header': 'get', //自定义请求头信息 'content-type': 'application/json' // 默认返回json格式,可以不加(加上是为了后面方便维护) }, success: (res) => { preHandleResult(res); if(successCallback){ successCallback(res); } }, fail: (res) => { preHandleResult(res); if(failCallback){ failCallback(res); } } }); } function request_post (url, param, successCallback, failCallback) { var _this = this; uni.request({ url: url, data: param, dataType: 'json', method: 'POST', header: { 'custom-header': 'post', 'content-type': 'application/json' }, success: (res) => { preHandleResult(res); if(successCallback){ successCallback(res); } }, fail: (res) => { preHandleResult(res); if(failCallback){ failCallback(res); } } }); } function request_put (url, param, successCallback, failCallback) { var _this = this; uni.request({ url: url, data: param, dataType: 'json', method: 'PUT', header: { 'custom-header': 'put', 'content-type': 'application/json' }, success: (res) => { preHandleResult(res); if(successCallback){ successCallback(res); } }, fail: (res) => { preHandleResult(res); if(failCallback){ failCallback(res); } } }); } function request_delete (url, param, successCallback, failCallback) { var _this = this; uni.request({ url: url, data: param, dataType: 'json', method: 'DELETE', header: { 'custom-header': 'delete', 'content-type': 'application/json' }, success: (res) => { preHandleResult(res); if(successCallback){ successCallback(res); } }, fail: (res) => { preHandleResult(res); if(failCallback){ failCallback(res); } } }); } // 上面就是异步请求get/post/put/delete的封装了,到时候你直接导入正确传入参数就可以用这里的异步请求方法了。 // 当然需要先导出去,你才能导入其他地方引用。下面这就是导出。 // 你调用的时候是调 url_Request_get(url,param,success,fail) 方法。而不是function request_get(url,param,success,fail); // 既然都导出去了,那我们就去别的地方引用去。 export default { url_Request_get: function (url, param, success, fail) { return request_get (url, param, success, fail); }, url_Request_post: function (url, param, success, fail) { return request_post (url,param,success,fail); }, url_Request_put: function (url, param, success, fail) { return request_put (url,param,success,fail); }, url_Request_delete: function (url, param, success, fail) { return request_delete (url,param,success,fail); } }
这部分是把共用的导入应用
<script> import http from '../../common/ajax.js'; import showTip from '../../common/showTips.js';
直接在你的应用页这样导入就好了,位置你自己放。这里是个参考。
这里的名字你可以自己随意取,当然不要取一些关键字最好。(我这里只是个demo)
点个赞,或者留个眼再走吧
相关文章推荐
- OkHttp请求封装(Get Post Delete Put请求)异步和同步(请求头)请求的封装
- 【技术】ajax的get,post, put, delete封装
- httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http Get Post Put Delete 调用WebAPi封装
- httpClient Post例子,Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- 简易封装 XHR:支持 GET/POST/PUT/DELETE/JSONP/FormData
- HttpClient 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete .
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- HTTP协议-get,put,post,delete含义与区别
- Get Post put delete 详解