当前位置:首页 > 编程技术 > 正文内容

uniapp 网络请求封装【luch-request 3.x】

yc8881年前 (2022-12-02)编程技术652

uniapp 网络请求封装【luch-request 3.x】

  • 1. luch-request 介绍

  • 2. luch-request 安装

  • 3. luch-request 封装

    1. luch-request 介绍

    luch-request 基于 Promise 开发的 uni-app 跨平台请求库。对于使用者来说,最突出的优点是: 方便简单的自定义能力,可以通过 custom 自定义参数;相当于 uni.request() 来说,可配置更高,支持请求拦截,响应拦截

    2. luch-request 安装


    方式一: 使用 npm 安装

    安装 luch-request 包

    npm i luch-request -S

    cli 用户使用 npm 包需要在项目根路径下创建 vue.config.js 文件,增加以下内容:

    // vue.config.jsmodule.exports = {    transpileDependencies: ['luch-request']}

    使用示例 :

    import Request from 'luch-request' // 使用 npmconst http = new Request();

    方式二: 通过 dcloud 插件市场安装

    luch-request 插件 : https://ext.dcloud.net.cn/plugin?id=392

    通过 dcloud 插件市场安装 luch-request 插件会将其安装到 js_sdk 目录下,使用示例 :

    import Request from '@/js_sdk/luch-request/luch-request'  // 使用 dcloud 插件const http = new Request();http.get('/user/info', { params: { uid: 1 } }).then(res => {}).catch(err => {})

    3. luch-request 封装


    uView 的 http 网络请求就是集成于 luch-request,uView 对其进行了简单封装uView 官方文档提供一套 封装示例,可参考其封装思想,亦可在这套封装示例上进行修改。下面是没有使用 uView 时,单独安装 luch-request 插件进行封装的示例

    在 uni-app 的入口文件 main.js 中将 luch-request 实例挂载到 uni.http 上

    import Request from '@/js_sdk/luch-request/luch-request/index.js'uni.http = new Request()

    一、全局配置,以及请求,响应拦截器定义

    在 api/request.js 中进行网络请求全局配置,请求拦截器和响应拦截器定义,下面是最简单的结构 :

    module.exports = vm => {    // 初始化请求配置    uni.http.setConfig(config => {        // 可在此处接口域名前缀        return config    })    // 请求拦截    uni.http.interceptors.request.use(config => {        // 此时 data 为 undefined, 赋予默认 {}        config.data = config.data || {}        // 可在此处将用户状态 token 放入请求头        return config    }, config => { // 可使用async await 做异步操作        return Promise.reject(config)    })    // 响应拦截    uni.http.interceptors.response.use(response => {        const data = response.data        return data.data === undefined ? {} : data.data    }, response => {        // 对响应错误做点什么 (statusCode !== 200)        return Promise.reject(response)    })}

    二、引用配置

    在 main.js 中引用 api/request,注意引用的书写位置,需要在得到 Vue 实例之后,如下:

    const app = new Vue({    store,    ...App})// 引入请求封装,将app参数传递到配置中require('@/api/request')(app)

    三、Api 集中管理

    在 api/user.js 中编写请求接口,将用户相关的接口都放入该文件

    在这个文件到导出方法即可,为了使用方便,原则是可以通过下面这种方式解构得到方法

    // 需要使用哪个接口,就只解构出相应的接口方法import { login, getUserInfo } from '@/api/user'

    导出方法的方式有很多,列举出几种写法 :

    const http = uni.httpmodule.exports = {    // 用户登录    login: params => http.post('/user/login', params),    // 获取用户信息    getUserInfo: params => http.get('/user/getUserInfo', { params }),}
    const http = uni.http// 用户登录export const login = params => http.post('/user/login', params)// 获取用户信息export const getUserInfo = params => http.get('/user/getUserInfo', { params })


    本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


    从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


    本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


    本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


    若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


    本文链接:https://www.10zhan.com/biancheng/10149.html

    标签: uniapp
    分享给朋友:

    “uniapp 网络请求封装【luch-request 3.x】” 的相关文章

    【说站】laravel实现自定义404页面并给页面传值

    【说站】laravel实现自定义404页面并给页面传值

    以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

    【说站】Thymeleaf报错Error resolving template “XXX”

    【说站】Thymeleaf报错Error resolving template “XXX”

    修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

    【说站】用一句话就可以去除宝塔面板操作上的二次验证

    【说站】用一句话就可以去除宝塔面板操作上的二次验证

    用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

    【说站】利用Webhook实现Java项目自动化部署

    【说站】利用Webhook实现Java项目自动化部署

    用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

    【说站】linux中redis如何以redis用户重启?

    【说站】linux中redis如何以redis用户重启?

    通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

    【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

    【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

    疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。效果展示获取到的数据咱们保存到表格可视化地图颜色是...