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


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 相关文章推荐
一些技巧性实用js代码小结
Oct 14 Javascript
JQuery 学习笔记01 JQuery初接触
May 06 Javascript
jQuery的运行机制和设计理念分析
Apr 05 Javascript
Javascript根据指定下标或对象删除数组元素
Dec 21 Javascript
jQuery中:file选择器用法实例
Jan 04 Javascript
Js实现无刷新删除内容
Apr 29 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
JavaScript实现左侧菜单效果
Dec 14 Javascript
微信小程序自定义toast组件的方法详解【含动画】
May 11 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 Javascript
vue移动端使用canvas签名的实现
Jan 15 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
重置版游戏视频
2020/04/09 魔兽争霸
PHP 中的一些经验积累
2006/10/09 PHP
PHP读取xml方法介绍
2013/01/12 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Django添加feeds功能的示例
2018/08/07 Python
PIL对上传到Django的图片进行处理并保存的实例
2019/08/07 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
Python中内建模块collections如何使用
2020/05/27 Python
Python装饰器结合递归原理解析
2020/07/02 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
秋季婚礼证婚词
2014/01/11 职场文书
高中历史教学反思
2014/02/08 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
大足石刻导游词
2015/02/02 职场文书
专家推荐信范文
2015/03/26 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
聘用合同范本
2015/09/21 职场文书
党员心得体会范文2016
2016/01/23 职场文书
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python