微信小程序的全局变量(quanjubianliang)
在微信小程序开发中,管理和使用全局变量是一种常见的需求。例如,可以通过小程序的App实例和globalData对象来实现全局变量的存储和共享。以下是详细说明:
1. 全局变量的定义
微信小程序提供了 App() 函数,其中可以定义一个 globalData 对象,用于存储全局变量。
定义方式:
在 app.js 文件中定义全局变量:
// app.js
App({onLaunch() {// 展示本地存储能力const logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)// 登录
wx.login({success: res => {// 发送 res.code 到后台换取 openId, sessionKey, unionId}})},
globalData: {
userInfo: null,
appTheme: 'light', // 其他自定义全局变量}
})
2. 在页面中使用全局变量
通过 getApp() 方法获取全局应用实例,从而访问或修改 globalData。
示例:
假设我们在页面 index.js 中获取和设置全局变量:
onLoad: function () {// 获取全局变量const app = getApp();
console.log('当前主题:', app.globalData.appTheme);// 修改全局变量
app.globalData.appTheme = 'dark';
console.log('更新后的主题:', app.globalData.appTheme);},
重新编译,看控制台输出:
由此,我们可以看到,是已经成功使用了全局变量。
3. 注意事项
● 数据同步性: 全局变量的修改对其他页面立即生效,但如果其他页面已经加载,可能需要手动刷新以同步最新数据。
● 大数据存储: 不要将大量数据存储在 globalData 中,可以将大数据存储到本地(如 wx.setStorage 或 wx.setStorageSync)。
● 模块化: 对于复杂的项目,建议将全局状态管理抽离成单独模块(如使用 Redux、MobX 或者封装自己的状态管理工具)。
完整代码:
通过网盘分享的文件:微信小程序的全局变量(quanjubianliang)
链接: https://pan.baidu.com/s/1rxzOP0uMVb5k50Ec-HLVNA?pwd=bebg 提取码: bebg