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