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


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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
Dec 30 Javascript
Uploadify上传文件方法
Mar 16 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
JS中Swiper的使用和轮播图效果
Aug 11 Javascript
javascript回调函数详解
Feb 06 Javascript
vue组件与复用详解
Apr 08 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
原生js中运算符及流程控制示例详解
Jan 05 Javascript
vue+spring boot实现校验码功能
May 27 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学习笔记之三 数据库基本操作
2011/01/17 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Django实现分页功能
2018/07/02 Python
Python中的单下划线和双下划线使用场景详解
2019/09/09 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
英语系本科生求职信范文
2013/12/18 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
大学毕业感言200字
2014/03/09 职场文书
委托公证书范本
2014/04/03 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers