【微信小程序】挂载网络请求到全局this对象

这篇具有很好参考价值的文章主要介绍了【微信小程序】挂载网络请求到全局this对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【微信小程序】挂载网络请求到全局this对象

《工欲善其事,必先利其器》

【微信小程序】挂载网络请求到全局this对象,微信,微信小程序,javascript,前端

有一些常用的东西,如http请求、弹窗、错误处理等等,如果在每个页面都引用一遍,会增加不必的代码量,我们可以在app.js中对Page对象进行简单地封装,从而让Page的能力更强。

一、封装原生网络请求

request.js

/**
 * @description 网络请求封装
 * @author Coder.Li
 * @param {string} path 路径
 * @param {string} method 请求方式
 * @param {object} data 请求数据
 * @param {string} loadingTxt 加载提示
 */
const CONFIG = require('../config/index');
const md5 = require('../utils/md5');
const request = (path, method, data, loadingTxt = 'loading...') => {
	let url = CONFIG.apiUrl + path,
		token = wx.getStorageSync('token') || '',
		timestamp = new Date() * 1, // 获取时间戳
		sign = md5(
			`appid=${CONFIG.appid}&timestamp=${timestamp}&appkey=${CONFIG.appkey}`
		);
	return new Promise((resolve, reject) => {
		// 低于指定某个时间内的请求不显示loading
		let timer = setTimeout(() => {
			wx.showLoading({
				title: loadingTxt,
				mask: true,
				duration: 5000,
			});
		}, 200);
		wx.request({
			url,
			method: method,
			data: data,
			header: {
				appid: CONFIG.appid,
				token: token,
				timestamp: timestamp,
				sign: sign,
			},
			success(request) {
				resolve(request.data);
			},
			fail(error) {
				reject(error.data);
			},
			complete(v) {
				wx.hideLoading();
				clearTimeout(timer);
			},
		});
	});
};

module.exports = request;

二、app.js 引入网络请求,挂载到全局对象 this 上

app.js文章来源地址https://www.toymoban.com/news/detail-734232.html

/**
 * @description 入口及公共挂载
 * @author Coder.Li
 * */
const $API = require('./utils/request');
const $CONFIG = require('./config/index');

App({
	onLaunch: function(options) {
		// 注册全局方法
		this.enhancePage();
	},
	/**
     * @description 挂载全局方法, this调用
     * @author Coder.Li
     * */
	enhancePage() {
		const oPage = Page;
		Page = config => oPage(Object.assign(config, {
			$API,
			$CONFIG
		}))
	}
})

三、页面调用

async getData() {
	const result = await this.$API(url, method, data, loadingTxt)
}

到了这里,关于【微信小程序】挂载网络请求到全局this对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序this.setData修改对象、数组中的值

    在微信小程序的[前端开发]中,使用this.setData方法修改data中的值,其格式为: 需要注意的是,如果是简单变量,这里的参数名可以不加引号。 经过测试,可以使用3种方式对data中的对象、数组中的数据进行修改。 假设原数据为: 方式一: 使用字符串,例如: 方式二: 构造

    2024年02月10日
    浏览(50)
  • 微信小程序this.setData()对单个属性值、对象、数组的使用

     单个属性值: 第一种写法:直接写单个属性值  第二种写法:数组形式的字符串单个属性值  对象: 第一种写法:字符串写对象  第二种写法:数组形式的字符串写对象   数组: 第一种写法:字符串写数组  第二种写法:数组形式的字符串写数组

    2024年02月06日
    浏览(47)
  • 微信小程序网络请求封装

    网络请求地址放到url.js中,分别制定开发环境,体验环境,线上环境 网络请求的方法放到request.js中,暴露get、post、wxLogin方法 请求前显示加载中,请求结束后隐藏加载中 请求的接口方法,放到api.js中,并调用request.js中对应的方法 2.1 请求地址(url.js) 2.3 具体的请求方法(api.

    2024年02月15日
    浏览(39)
  • 微信小程序-----网络数据请求

    目录 前言 一、 小程序中网络数据请求的限制 二、配置 request 合法域名 三、发起 GET 请求  四、发起 POST 请求 五、在页面刚加载时请求数据 六、跳过 request 合法域名校验 七、关于跨域和 Ajax 的说明         本期我们学习微信小程序中如何发起网络数据请求,通过网络数据

    2024年02月19日
    浏览(40)
  • 微信小程序中发送网络请求

    代码涉及的主要文件有: app.json pages/index/index.wxml pages/index/index.wxss pages/index/index.js 微信小程序提供了 wx.request(Object object) 这个API,用于发送网络请求,该API接受一个对象作为参数,该对象包含多个属性,其中常用的有: url ,请求的地址,string类型,必填。 data ,请求的参数

    2024年02月09日
    浏览(43)
  • 微信小程序:文本读写与网络请求

    一、本地用户文件读写: 1.普通接口操作文件: (1)写入文件内容: (2)读取文件内容: 2.FD接口操作文件(适用大量文件操作): (1)写入文件内容: (2)读取文件内容: 二、网络请求: 配置服务器域名: 进入以下地址,在服务器域名 - 点击修改按钮, 添加\\\"request合法域名、upl

    2024年02月15日
    浏览(39)
  • 【小程序教程】微信小程序之request网络请求

    微信小程序提供了request网络请求的API,可以用于与后台服务器进行数据交互,实现数据的获取和提交等功能。在本文中,将介绍如何使用request网络请求API,并提供一个示例代码,帮助大家更好地理解。 使用request网络请求API的步骤如下: 在小程序页面中,需要在页面或者组

    2024年02月04日
    浏览(47)
  • 微信小程序基于Promise封装发起网络请求

         

    2024年02月17日
    浏览(55)
  • iphone/苹果手机 微信小程序 真机调试 网络不通 网络请求失败

    问题:iphone/苹果手机 微信小程序 真机调试 网络请求失败,可以确定的是,真机和开发工具所在电脑肯定是在一个网段的,把蜂窝数据都关了,只保留了WIFI,还是请求不通, 最终参考 微信小程序真机调试报错fail-109:net::ERR_ADDRESS_UNREACHABLE ? 解决,原来是 IOS升级了本地网络权

    2024年02月11日
    浏览(112)
  • 【7 微信小程序学习 - 小程序的系统API调用,网络请求封装】

    请求数据,保存数据 需要封装为单独的函数,不然不是异步的 (推荐,可配置不同基础URL的多个实例)

    2024年02月09日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包