diff --git a/zh-cn/application-dev/reference/arkui-js-lite/js-framework-js-file.md b/zh-cn/application-dev/reference/arkui-js-lite/js-framework-js-file.md index 15bd4ab324917fb730f0fb11876d0d0a6b3c4947..7b6bdf24e68d92376a99174713a0c8350a3f6dd9 100644 --- a/zh-cn/application-dev/reference/arkui-js-lite/js-framework-js-file.md +++ b/zh-cn/application-dev/reference/arkui-js-lite/js-framework-js-file.md @@ -1,5 +1,6 @@ # app.js +## 应用生命周期4+ 每个应用可以在app.js自定义应用级生命周期的实现逻辑,包括: @@ -12,7 +13,7 @@ 以下示例仅在生命周期函数中打印对应日志: - + ``` // app.js export default { @@ -24,3 +25,59 @@ export default { }, } ``` + +## 应用对象10+ + +| 属性 | 类型 | 描述 | +| ------ | -------- | ------------------------------------------------------------ | +| getApp | Function | 提供getApp()全局方法,可以在页面js文件中获取app.js中暴露的数据对象。 | + +> **说明**:应用对象是全局数据,其在整个应用消亡之前都会一直占用JS内存。尽管应用对象可为不同页面共享数据提供便利,但因为小型设备本身内存比较小,也应谨慎使用。如果过度使用,则容易造成应用在进入复杂page页面时,内存不够而出现异常。 + +示例如下: + +在 app.js 中声明应用对象: + +```javascript +// app.js +export default { + data: { + test: "by getAPP" + }, + onCreate() { + console.info('Application onCreate'); + }, + onDestroy() { + console.info('Application onDestroy'); + }, +}; +``` + +在具体的页面中访问应用对象: + +```javascript +// index.js +export default { + data: { + title: "" + }, + onInit() { + if (typeof getApp !== 'undefined') { + var appData = getApp().data; + if (typeof appData !== 'undefined') { + this.title = appData.name; // read from app data + } + } + }, + clickHandler() { + if (typeof getApp !== 'undefined') { + var appData = getApp().data; + if (typeof appData !== 'undefined') { + appData.name = this.title; // write to app data + } + } + } +} +``` + +> **说明**:为了应用可在不支持getApp的低版本上正常运行,代码中应进行兼容性处理,即在使用getApp前先判断其是否可用。 \ No newline at end of file