uni-app如何封装请求接口数据并挂载到全局

2020-12-31   阅读:2996   分类:前端    标签: uni-app

在做项目的时候,小项目可以不考虑封装,项目大的话就得考虑请求接口封装了,我们在改动的时候也方便,而且节省了很多代码。以下是一个简单的封装例子,供大家参考和使用

1、 首先在更目录下新建util文件夹,在里面新建个api.js

image.png

1、在api.js添加如下请求代码

const BASE_URL = "http://www.example.com"
let ajaxTimes=0;
export const myRequest = (option)=>{
        
         ajaxTimes++;
         uni.showLoading({
                            title: "加载中",
                       mask: true,
                   });
         return new Promise((resolve, reject)=>{
                   uni.request({
                            url: BASE_URL + option.url,
                            method: option.method || 'GET',
                            data: option.data || {},
                            success: (res) => {
                                     if(res.data.code !=200){
                                               // uni.showToast({
                                               //      title: '获取数据失败'
                                               // })
                                     }
                                     resolve(res)
                            },
                            fail: (err) => {
                                      uni.showToast({
                                               title: '请求接口失败'
                                     })
                                     reject(err)
                            },
                            // 完成之后关闭加载效果
                            complete:()=>{
                                     ajaxTimes--;
                                     if(ajaxTimes===0){
                                               //  关闭正在等待的图标
                                               uni.hideLoading();
                                     }
                            }
                   })
         })
}

2、挂载到全局main.js

import { myRequest } from './util/api.js'
Vue.prototype.$myRequest = myRequest

image.png

3、使用方法

<script>
         export default {
                   data() {
                            return {}
                   },
                   onLoad() {
                     this.getVod()
                   },
                   methods: {
                            async getVod(){
                                     const res = await this.$myRequest({
                                               url: '/api/Uniapp/home'
                                     })
                                     console.log(res)
                            }
                   }
         }
</script>

4、接口访问结果

image.png

【腾讯云】 爆款2核2G3M云服务器首年 61元,2核2G4M云服务器新老同享 99元/年,续费同价

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/fdetail/566.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×