微信小程序全局变量功能与用法详解


Posted in Javascript onJanuary 22, 2019

本文实例讲述了微信小程序全局变量功能与用法。分享给大家供大家参考,具体如下:

全局变量的作用

在微信小程序开发中,会遇到一个很实际的应用场景,就是一个变量会在多个页面进行使用。

例如:

1. 在微信小程序开发中使用高德地图的微信小程序开发,其中key值就需要在多个页面使用;

2. 在微信小程序开发电商平台时同样,比如客服电话,就需要在多个页面使用。

在以上两种类似的场景中,开发者就需要使用全局变量,当然也有开发者说不能每个page页面都定义一个?如果客服电话改变,如果客服要求采用他的高德key,这个时候只需要修改全局,就能进行整个小程序的修改,如果每个page一个变量,将会在修改中花费大量的时间做低效的工作。所以可以看出全局变量在这里的作用就是提高开发效率!

如何定义全局变量

方法一:用APP定义全局变量

在app.js中的APP({})传入对象中定义一个全局属性globalData,作为保存全局变量的对象。

示例代码:

声明变量进行引入!

// 引入高德地图js
const amap = require('./src/js/amap-wx.js');
// 引入接口js
const urlList = require('./src/js/config.js');
// 引入wetoast插件js
const { WeToast } = require('./src/wetoast/wetoast.js');
// 全局变量高德地图key
const key = 'c290b7e016c85e8f279b2f80018c';
// 全局变量服务电话
const phone = '400-007-859';

进行全局变量的赋值!

App({
 globalData: {//全局变量
  amap: amap,
  key: key,
  phone: phone,
  urlList: urlList.urlList
 }
})

方法一全局变量的使用:

//在page页面引入app,同时声明变量,获得所需要的全局变量
const app = getApp();
const urlList = app.globalData.urlList;

方法二:用引入js的方法定义全局变量

在公用js文件夹中创建一个保存全局变量的js文件

实例:我在公用文件夹src下的js文件夹中创建的三个保存全局变量的文件:base64.js、config.js、data.js

微信小程序全局变量功能与用法详解

这三个文件作用:

1. base64.js保存背景图标转化的base64码
2. config.js保存request请求数据的路径
3. data.js 保存初次开发的模拟数据

示例代码:

let basePath = 'https://xxxxx.com';
let urlList = {
  goodsListUrl: basePath + '/goodsList',
  shopCartUrl: basePath + '/shopCart',
  ...
}
module.exports = {
 urlList: urlList
}

使用方法:

// 引入接口js
const urlList = require('./src/js/config.js');
wx.request({
  url: urlList.urlList.goodsListUrl,
  data: {},
  success: res => {}
})

总结

其实两种方法都可以定义全局变量,那么在什么时候采用哪一种方法?我个人建议,在像高德地图的key值这种只需要单独定义的,可以采用方法一,方便、简洁、不用单独创建文件。在请求地址这种批量全局变量的定义时,采用方法二,有利于后期的查找和修改。两种方法结合,更有利于开发!

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript读取xml
Nov 04 Javascript
Javascript 表单之间的数据传递代码
Dec 04 Javascript
使用js获取QueryString的方法小结
Feb 28 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
调整小数的格式保留小数点后两位
May 14 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
jquery禁止回车触发表单提交
Dec 12 Javascript
jQuery中[attribute^=value]选择器用法实例
Dec 31 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
May 13 Javascript
AngularJS基础 ng-if 指令用法
Aug 01 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
微信小程序使用map组件实现路线规划功能示例
Jan 22 #Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 #Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 #Javascript
JavaScript继承与聚合实例详解
Jan 22 #Javascript
JavaScript格式化json和xml的方法示例
Jan 22 #Javascript
基于vue的验证码组件的示例代码
Jan 22 #Javascript
JavaScript中的"=、==、==="区别讲解
Jan 22 #Javascript
You might like
PHP array_push 数组函数
2009/12/26 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
移动端基础事件总结与应用
2017/01/12 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
浅谈python之新式类
2018/08/12 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
在阿联酋购买翻新手机和平板电脑:Teckzu
2021/02/12 全球购物
留学推荐信中文范文三篇
2014/01/25 职场文书
信息管理专业自荐书
2014/06/05 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
中班下学期个人总结
2015/02/12 职场文书
用python自动生成日历
2021/04/24 Python
浅谈react useEffect闭包的坑
2021/06/08 Javascript
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL