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


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 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
JS实现匀速运动的代码实例
Nov 29 Javascript
jquery代码实现多选、不同分享功能
Jul 31 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
Oct 22 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
微信小程序 出现47001 data format error原因解决办法
Mar 10 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
浅谈node模块与npm包管理工具
Jan 03 Javascript
原生js通过一行代码实现简易轮播图
Jun 05 Javascript
微信小程序使用蓝牙小插件
Sep 23 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
Oct 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中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
javascript 一些用法小结
2009/09/11 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
python多进程控制学习小结
2018/10/31 Python
Django中信号signals的简单使用方法
2019/07/04 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
临床医学专业求职信
2014/08/08 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
南湾猴岛导游词
2015/02/09 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
班主任自我评价范文
2015/03/11 职场文书
高效课堂教学反思
2016/02/24 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python