1# app.js 2 3## 应用生命周期<sup>4+</sup> 4 5每个应用可以在app.js自定义应用级生命周期的实现逻辑,包括: 6 7 8- onCreate:在应用生成时被调用的生命周期函数。 9 10- onDestroy:在应用销毁时被调用的生命周期函数。 11 12 13以下示例仅在生命周期函数中打印对应日志: 14 15 16 17```js 18// app.js 19export default { 20 onCreate() { 21 console.info('Application onCreate'); 22 }, 23 onDestroy() { 24 console.info('Application onDestroy'); 25 }, 26} 27``` 28 29## 应用对象<sup>10+</sup> 30 31| 属性 | 类型 | 描述 | 32| ------ | -------- | ---------------------------------------- | 33| getApp | Function | 提供getApp()全局方法,可以在页面js文件中获取app.js中暴露的数据对象。 | 34 35> **说明**: 36> 37> 应用对象是全局数据,其在整个应用消亡之前都会一直占用JS内存。尽管应用对象可为不同页面共享数据提供便利,但因为小型设备本身内存比较小,也应谨慎使用。如果过度使用,则容易造成应用在进入复杂page页面时,内存不够而出现异常。 38 39示例如下: 40 41在 app.js 中声明应用对象: 42 43```javascript 44// app.js 45export default { 46 data: { 47 test: "by getAPP" 48 }, 49 onCreate() { 50 console.info('Application onCreate'); 51 }, 52 onDestroy() { 53 console.info('Application onDestroy'); 54 }, 55}; 56``` 57 58在具体的页面中访问应用对象: 59 60```javascript 61// index.js 62export default { 63 data: { 64 title: "" 65 }, 66 onInit() { 67 if (typeof getApp !== 'undefined') { 68 var appData = getApp().data; 69 if (typeof appData !== 'undefined') { 70 this.title = appData.name; // read from app data 71 } 72 } 73 }, 74 clickHandler() { 75 if (typeof getApp !== 'undefined') { 76 var appData = getApp().data; 77 if (typeof appData !== 'undefined') { 78 appData.name = this.title; // write to app data 79 } 80 } 81 } 82} 83``` 84 85> **说明**: 86> 87> 为了应用可在不支持getApp的低版本上正常运行,代码中应进行兼容性处理,即在使用getApp前先判断其是否可用。