在小程序中,可以通过 getApp() 方法获取到小程序全局唯一的App实例 因此在App()
方法中添加全局共享的数据、方法,从而实现页面、组件的数据传值
在 app.js 文件中定义
javascript
App({
// 全局共享的数据
globalData:{
token:''
},
// 全局共享的方法
setToken(token){
// 如果想获取token,可以使用 this 的方法进行获取
this.globalData.token = token
// 在 App() 方法中如果想获取 App() 实例,可以通过 this 的方式进行获取
// 不能通过 getApp() 方法获取
}
})
使用 需要在登录页面 先 setToken
.wxml 文件
javascript
<button type="warn" plain bindtap="login">登录</button>
.js 文件
javascript
// getApp()方法用来获取全局位移的 App()实例
const appInstance = getApp()
Page({
login(){
// 不要通过 app 实例调用钩子函数
appInstance.setToken("aaaaaaaaaa")
}
})
然后 再其它页面 可获取 全局存入的token
javascript
const appInstance=getApp()
Page({
onLoad(options) {
console.log(appInstance)
},
})
注意事项
1.不要再App() 方法中使用 getApp() 使用 this 就可以拿到 app实例
2.通过 getApp() 获取实例之后,不要私自调用生命周期函数