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


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 相关文章推荐
经典的带阴影的可拖动的浮动层
Jun 26 Javascript
DHTML Slide Show script图片轮换
Mar 03 Javascript
js树形控件脚本代码
Jul 24 Javascript
javascript 必知必会之closure
Sep 21 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
JS网页在线获取鼠标坐标值的方法
Feb 28 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
Jun 07 Javascript
基于JavaScript实现的希尔排序算法分析
Apr 14 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
小程序实现列表删除功能
Oct 30 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 Javascript
微信小程序使用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日期时间函数的高级应用技巧
2009/05/16 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
python 实现登录网页的操作方法
2018/05/11 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
财务经理的岗位职责
2013/12/17 职场文书
数控专业自荐书范文
2014/03/16 职场文书
聘任书模板
2014/03/29 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
Docker部署Mysql8的实现步骤
2022/07/07 Servers