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


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 相关文章推荐
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
javascript 节点排序 2
Jan 31 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
vue component组件使用方法详解
Jul 14 Javascript
基于JS实现移动端左滑删除功能
Jul 28 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
js数据类型转换与流程控制操作实例分析
Dec 18 Javascript
对vue生命周期的深入理解
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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
JS实现div居中示例
2014/04/17 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
js实现简单鼠标跟随效果的方法
2015/04/10 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
layui实现三级联动效果
2019/07/26 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python实现排序算法
2014/02/14 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
python中有关时间日期格式转换问题
2019/12/25 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
几个常见的软件测试问题
2016/09/07 面试题
经济信息系毕业生自荐信
2014/06/02 职场文书
汽车专业求职信
2014/06/05 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS