在微信小程序中,globalData
是一个非常有用的属性,用于在整个小程序中共享数据。通过 globalData
,你可以在不同的页面和组件之间传递和共享数据,而不需要在每个页面中重复定义或传递这些数据。
1. 在 app.js 中定义 globalData
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | App({ globalData: { userInfo: null , token: '' }, getUserInfo: function (cb) { var that = this if ( this .globalData.userInfo) { typeof cb == "function" && cb( this .globalData.userInfo) } else { // 调用登录接口 wx.login({ success: function () { wx.getUserInfo({ success: function (res) { that.globalData.userInfo = res.userInfo typeof cb == "function" && cb(that.globalData.userInfo) } }) } }) } }, // 其他方法... }) |
2. 在页面或组件中使用 globalData
1 2 3 4 5 6 7 8 9 10 | // pages/index/index.js const app = getApp() Page({ onLoad: function () { console.log(app.globalData.userInfo) console.log(app.globalData.token) }, // 其他页面方法... }) |
在组件中使用 globalData
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // components/myComponent/myComponent.js const app = getApp() Component({ properties: { // 组件属性 }, data: { // 组件内部数据 }, attached: function () { console.log(app.globalData.userInfo) console.log(app.globalData.token) }, // 其他组件方法... }) |
3. 修改 globalData
1 2 3 4 5 6 7 8 9 10 11 | // pages/login/login.js const app = getApp() Page({ login: function () { // 假设已经通过登录接口获取到 token const token = 'abc123' app.globalData.token = token // 其他登录逻辑... } }) |