ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[success] # App函数 1. 每个小程序都需要在 [app.js](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html)中调用 App 函数 注册小程序 2. 在注册时, 可以绑定对应的**生命周期函数**,**App() 必须在`app.js`中调用,必须调用且只能调用一次** 3. 共享数据但**数据不是响应式, 这里共享的数据通常是一些固定的数据**,一般将共享起名字叫做`globalData` 但可以随意任意非关键字的名字 4. 在别的页面可以通过 `getApp()` 来获取,可以理解为整个`getApp()` 作为根可以在任意页面使用这些数据,获取到小程序全局唯一的`App`实例。 ~~~ const app = getApp() 从app实例对象获取数据 app.globalData.属性 ~~~ | 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 | | --- | --- | --- | --- | --- | --- | | [onLaunch](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object) | function | | 否 | 生命周期回调——监听小程序初始化。 | | | [onShow](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onShow-Object-object) | function | | 否 | 生命周期回调——监听小程序启动或切前台。 | | | [onHide](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onHide) | function | | 否 | 生命周期回调——监听小程序切后台。 | | | [onError](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onError-String-error) | function | | 否 | 错误监听函数。 | | | [onPageNotFound](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onPageNotFound-Object-object) | function | | 否 | 页面不存在监听函数。 | [1.9.90](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) | | [onUnhandledRejection](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onUnhandledRejection-Object-object) | function | | 否 | 未处理的 Promise 拒绝事件监听函数。 | [2.10.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) | | [onThemeChange](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onThemeChange-Object-object) | function | | 否 | 监听系统主题变化 | [2.11.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) | | 其他 | any | | 否 | 开发者可以添加任意的函数或数据变量到`Object`参数中,用`this`可以访问 | >[danger] ##### 简单登录案例 1. 做一个简单的登录案例触发[onLaunch](https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html#onLaunch-Object-object) 函数简单小程序初始化 * 先判断本地的wx的`Storage`是否有数据 * * 有数据直接赋值将用户信息保存在全局变量中 * * 没有数据将数据保存到wx的`Storage` 中 ***** app.js ~~~ // app.js App({ onLaunch() { const token = wx.getStorageSync("token"); const userName = wx.getStorageSync("userName"); if(!token || !userName){ wx.setStorageSync("token","123") wx.setStorageSync("userName","456") } // 获取保存到全局 this.globalData.token = wx.getStorageSync("token"); this.globalData.userName = wx.getStorageSync("userName"); }, onShow(options) { // 判断小程序的进入场景在options 里可以获取 console.log("onShow:", options); }, onHide() { console.log("onHide"); }, globalData: { token: "", userName:"" } }) ~~~ ***** * pages/home/home.js ~~~ // pages/home/home.js Page({ data:{ userName:"" }, // 生命周期回调—监听页面加载 onLoad(){ // 获取app 全局对象 const app = getApp() // 2.从app实例对象获取数据 const token = app.globalData.token const userName = app.globalData.userName console.log(token, userName); // 3.将数据展示到界面上面 this.setData({ userName }) console.log(this.data.userName); } }) ~~~