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


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中常用的运算符小结
Jan 18 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
JavaScript数组随机排列实现随机洗牌功能
Mar 19 Javascript
JavaScript实现网页加载进度条代码超简单
Sep 21 Javascript
走进AngularJs之过滤器(filter)详解
Feb 17 Javascript
Angular2入门--架构总览
Mar 29 Javascript
Node.js中sequelize时区的配置方法
Dec 10 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
Aug 13 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
jQuery开发仿QQ版音乐播放器
Jul 10 jQuery
微信小程序使用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生成验证码
2017/02/23 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
htm调用JS代码
2007/03/15 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
centos系统升级python 2.7.3
2014/07/03 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
python发送告警邮件脚本
2018/09/17 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python: 传递列表副本方式
2019/12/19 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
数控机床专业自荐信
2014/05/19 职场文书
银行进社区活动总结
2014/07/07 职场文书
女生抽烟检讨书
2014/10/05 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
军训通讯稿范文
2015/07/18 职场文书
安全教育主题班会总结
2015/08/14 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
Python IO文件管理的具体使用
2022/03/20 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB