当前位置: 首页 > news >正文

微信小程序 - 网络请求基础路径集中管理(基础路径集中管理策略、动态切换基础路径)

一、基础路径集中管理

  1. 在微信小程序项目开发中,经常会将请求的基础路径集中管理

  2. 这样可以避免在多个页面中重复定义,同时也方便后续维护与修改


二、基础路径集中管理策略

1、使用全局变量
  • 微信小程序提供了 App 对象,可以在 app.js 中定义全局变量,然后在各个页面中通过 getApp 方法获取
  1. app.js 中定义基础路径全局变量
App<IAppOption>({
	globalData: {
		baseUrl: "http://127.0.0.1:12345"
	},

	...
});
  1. 在页面中获取基础路径全局变量
const app = getApp(); // 获取 App 实例

const baseUrl = app.globalData.baseUrl;
2、使用配置文件
  • 将基础路径存放在一个独立的配置文件中,然后在需要的地方引入
  1. 创建配置文件,在 miniprogram 目录下创建 config.js 文件,定义基础路径
const config = {
	baseUrl: "http://127.0.0.1:12345",
};

module.exports = config;
  1. 在页面中引入配置文件,使用基础路径
const config = require('../../config.js');

const baseUrl = config.baseUrl;

三、动态切换基础路径

1、具体实现
  1. app.js 中定义基础路径全局变量
const accountInfo = wx.getAccountInfoSync();

const baseUrls = {
	develop: "http://127.0.0.1:12345", // 开发环境地址
	trial: "http://127.0.0.1:12345", // 体验环境地址
	release: "https://www.example.com:12345", // 生产环境地址
};

App<IAppOption>({
	globalData: {
		baseUrl: baseUrls[accountInfo.miniProgram.envVersion]
	},

	...
});
  1. 在页面中获取基础路径全局变量
const app = getApp(); // 获取 App 实例

const baseUrl = app.globalData.baseUrl;
2、学习 wx.getAccountInfoSync()
(1)基本介绍
  1. wx.getAccountInfoSync() 是微信小程序提供的一个同步接口,用于获取当前小程序的账号信息

  2. 该接口返回一个对象,通过这个对象,开发者可以获取到小程序的 AppID、版本信息、环境设置等

(2)演示
const accountInfo = wx.getAccountInfoSync();

if (accountInfo.miniProgram.envVersion === "develop") {
	console.log("当前是开发环境");
} else if (accountInfo.miniProgram.envVersion === "trial") {
	console.log("当前是体验环境");
} else if (accountInfo.miniProgram.envVersion === "release") {
	console.log("当前是正式环境");
}
http://www.dtcms.com/a/22594.html

相关文章:

  • 深入理解大语言模型的文本数据处理流程
  • python 并行请求多个 HTTP 接口
  • 设计模式在Qt中的应用
  • 深度集成DeepSeek大模型:WebSocket流式聊天实现
  • C#+SqlSugar实现主从库读写分离
  • 面向长范围交互式 LLM 智体的强化学习
  • 动画云渲染平台技术评估与优选策略
  • 机器学习基本篇
  • 领域驱动设计叕创新,平安保险申请DDD专利
  • Java并发编程8--线程
  • React + TypeScript+ Vite 配置路径别名和vscode智能路径提示
  • AI时代:前端开发的职业发展路径拓宽
  • vsan数据恢复—vsan缓存盘故障导致虚拟磁盘文件丢失的数据恢复案例
  • 在线考试系统(代码+数据库+LW)
  • ubuntu24基于虚拟机无法从主机拖拽文件夹
  • React通用登录/注销功能实现方案(基于shadcn/ui)
  • Android 虚拟机与ClassLoader类加载笔记
  • 【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor
  • 解压rar格式的软件有哪些?8种方法(Win/Mac/手机/网页端)
  • 新型基于Go语言的恶意软件利用Telegram作为C2通信渠道
  • Postman接口测试的cookie,token,session....鉴权
  • PyCharm 中的 %reset -f 功能:一键重置控制台变量
  • 2024 年 CSDN 博客之星年度评选:技术创作与影响力的碰撞(统计时间2025-02-17 11:06:06)
  • seata集成nacos
  • 基数排序【C语言】
  • 一.数据治理理论架构
  • Copilot Next Edit Suggestions(预览版)
  • 2025年-G4--lc79--Best Time to Buy and Sell Stock(java版)
  • 基于机器学习的多浮埋层 LDMOS 建模与击穿电压优化
  • 【复现DeepSeek-R1之Open R1实战】系列4:SFT和GRPO源码逐行深度解析(上)(3万字长文,从零开始到入门,包含详细的拓展基础知识)