uniapp+uview封装小程序请求

这篇具有很好参考价值的文章主要介绍了uniapp+uview封装小程序请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提要:

uniapp项目引入uview库 此步骤不再阐述

1.创建环境文件

uniapp+uview封装小程序请求,uni-app,前端

 env.js:

let BASE_URL;

if (process.env.NODE_ENV === 'development') {
	// 开发环境
	BASE_URL = '请求地址';
} else {
	// 生产环境
	BASE_URL = '请求地址';
}

export default BASE_URL;

2.创建请求文件

uniapp+uview封装小程序请求,uni-app,前端

该封装文件对后端接口返回格式有规范要求

如接口格式跟封装文件不匹配 可通过 request.js 中响应拦截进行修改 

接口返回格式示例:

{
    code: 200, // 根据code值判断接口状态
    data: {}  // 接口内容
    msg: "success"  // 接口备注
}

request.js:

// 接口共用地址
import BASE_URL from '@/env.js'
var request = function(app) {
	// 初始化请求配置
	uni.$u.http.setConfig((config) => {
		config.baseURL = BASE_URL;
		return config
	})

	// 请求拦截
	uni.$u.http.interceptors.request.use(config => {
		config.data = config.data || {}
		// 接口名为login则不携带token
		if(config.url != 'login'){
			config.header['Authorization'] = uni.getStorageSync('token') || ''
		}
		return config

	}, config => {
		// 返回异常承诺对象
		return Promise.reject(config)
	})

	// 响应拦截
	uni.$u.http.interceptors.response.use(response => {
		// uni.hideLoading();
		let data
		switch (response.data.code) {
			case 401 || 402 || 403:
				uni.showModal({
					title: '提示',
					content: response.data.msg,
					showCancel: false, // 隐藏取消按钮
					success: (res) => {
						if (res.confirm) {
							uni.redirectTo({
								url: '/pages/login'
							})
						}
					}
				})
				break;
			default:
				data = response.data.data;
				break;
		}
		return data;
	}, responseError => {
		// 返回异常承诺对象
		return Promise.reject(responseError)
	})

}

// 导出
module.exports = request;

3.引入请求文件

在根目录main文件内引入

// 引入请求封装
require('@/request/request.js')(app)

4.封装请求文件

uniapp+uview封装小程序请求,uni-app,前端

 以为 login.js 为例

该POST登录请求的 login函数名  需对应第二步封装文件中的请求不携带token的判断条件文章来源地址https://www.toymoban.com/news/detail-648373.html

// POST
export const login = (data) => {
	return uni.$u.http.post("login", data);
}
// GET
export const userInfo = (data) => {
	return uni.$u.http.get("userInfo", {
		data
	});
}

5.请求示例

import { login, userInfo } from "@/api/login.js"


data(){
    return{
        id:"",
        form: {
			username: '123456',
			password: '123456',
		},
    }
}



methods:{
    // 登录 POST请求
    login(){
        const data = await login(this.form)
        console.log(data)
		if (data.token) {
            // 如果存在Token 则储存到本地
		    uni.setStorageSync('token', data.token);
		}
    }
    // GET请求
    getUserInfo(){
        const data = await login({id: this.id})
        console.log(data)
    }
}

到了这里,关于uniapp+uview封装小程序请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp+uview封装小程序请求

    uniapp项目引入uview库 此步骤不再阐述  env.js: 该封装文件对后端接口返回格式有规范要求 如接口格式跟封装文件不匹配 可通过 request.js 中响应拦截进行修改  接口返回格式示例: request.js: 在根目录main文件内引入  以为 login.js 为例 该POST登录请求的 login函数名  需对应第二

    2024年02月13日
    浏览(39)
  • 【UniApp】-uni-app-网络请求

    经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法 首先我们打开官方文档,我先带着大家看一下官方文档的介绍:https://uniapp.dcloud.net.cn/api/request/request.html 从官方文档中我们可以看到,可以

    2024年02月04日
    浏览(53)
  • uni-app 使用uni.request封装发送api请求文档服务器请求导航守卫

    前言 刚刚接触uni-app时候想着直接使用axios发请求,可以发送成功但是请求头有点问题 后面发现教程都是使用@escookrequest-miniprogram三方包发送请求-(浏览器环境发送不了请求,不兼容) 为什么不直接用uni.request()发送请求,是因为每次请求都要写一次添加请求头不合理 后面

    2024年02月16日
    浏览(57)
  • 基于uniapp+vite4+vue3搭建跨端项目|uni-app+uview-plus模板

    最近得空学习了下uniapp结合vue3搭建跨端项目。之前也有使用uniapp开发过几款聊天/仿抖音/后台管理等项目,但都是基于vue2开发。随着vite.js破局出圈,越来越多的项目偏向于vue3开发,就想着uniapp搭配vite4.x构建项目效果会如何?经过一番尝试果然真香~ uniapp官网提供了  HBuild

    2024年02月09日
    浏览(87)
  • uni-app封装request请求及get、post、put等方法

    直接上代码 request.js文件 export default {   common: {     baseUrl: \\\"http://172.20.4.212:3000/api\\\",     data: {},     header: {       \\\"Content-Type\\\": \\\"application/json\\\",       \\\"Content-Type\\\": \\\"application/x-www-form-urlencoded\\\"     },     method: \\\"GET\\\",     dataType: \\\"json\\\"   },   request (options = {}) {     uni.showLoading({  

    2024年02月09日
    浏览(44)
  • uni-app 中使用uview生成测试小程序后报错:pleaseSetTranspileDependencies is not defined

    这是一篇踩坑文,记录一个uni-app中的坑点。 在uni-app 中使用uview后在生成小程序后第一次编译时控制台报了这么一个错: 在检查了许久的原因后最后找到的解决办法是: 在文件 /common/vendor.js 中搜索并删除下面这句话 如上图。 删除掉之后重新编译一下项目就正常运行了。

    2024年02月12日
    浏览(72)
  • 详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第五节 (基于uni-app封装鸿蒙接口请求库)

      随着鸿蒙系统的兴起,越来越多的app会采用鸿蒙开发。而鸿蒙开发必不可少的就是调用各种接口服务。为了简化接口的调用流程,我们通常会做一层封装。今天就来讲解一下,如何用uni-app封装鸿蒙的接口请求库。   首先我们要新建一个鸿蒙项目啦!当然选择第一个空白项

    2024年02月02日
    浏览(63)
  • uni-app 微信小程序蓝牙模块的解耦封装-持续更新

    core.js tool.js util.js main.js

    2024年03月27日
    浏览(97)
  • uView 在 uni-app 中的使用

    提示:正文内容: uView 官网: https://www.uviewui.com uView 是 uni-app 生态专用的 UI 框架 关于uView的取名来由,首字母u来自于uni-app首字母,uni-app是基于Vue.js,Vue和View(延伸为UI、视图之意)同音,同时view组件是uni-app中 最基础,最重要的组件,故取名uView,表达源于uni-app和Vue之意,

    2024年02月15日
    浏览(54)
  • uni-app uView自定义底部导航栏

    因项目需要自定义底部导航栏,我把它写在了组件里,基于uView2框架写的(vue2);   在components下创建tabbar.vue文件,代码如下:  app.vue (有没有大佬知道为什么这个样式加载app.vue里才生效)  pages.json配置 页面使用: ( mine.vue ) 注: current是底部导航栏的下标,你在tabb

    2024年02月14日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包