鸿蒙5.0开发进阶:JS组件-app.js

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


应用生命周期4+

每个应用可以在app.js自定义应用级生命周期的实现逻辑,包括:

  • onCreate:在应用生成时被调用的生命周期函数。

  • onDestroy:在应用销毁时被调用的生命周期函数。

以下示例仅在生命周期函数中打印对应日志:

// app.js
export default {
  onCreate() {
    console.info('Application onCreate');
  },
  onDestroy() {
    console.info('Application onDestroy');
  },
}

应用对象10+

属性类型描述
getAppFunction提供getApp()全局方法,可以在页面js文件中获取app.js中暴露的数据对象。

说明

应用对象是全局数据,其在整个应用消亡之前都会一直占用JS内存。尽管应用对象可为不同页面共享数据提供便利,但因为小型设备本身内存比较小,也应谨慎使用。如果过度使用,则容易造成应用在进入复杂page页面时,内存不够而出现异常。

示例如下:

在 app.js 中声明应用对象:

// app.js
export default {
    data: {
        test: "by getAPP"
    },
    onCreate() {
        console.info('Application onCreate');
    },
    onDestroy() {
        console.info('Application onDestroy');
    },
};

在具体的页面中访问应用对象:

// 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前先判断其是否可用。

ysql001 ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl \Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package zabbix-apache-conf-scl.noarch 0:5.0.47-1.el7 will be installed --> Processing Dependency: zabbix-web-deps-scl = 5.0.47-1.el7 for package: zabbix-apache-conf-scl-5.0.47-1.el7.noarch ---> Package zabbix-web-mysql-scl.noarch 0:5.0.47-1.el7 will be installed --> Processing Dependency: rh-php72-php-mysqlnd for package: zabbix-web-mysql-scl-5.0.47-1.el7.noarch --> Running transaction check ---> Package zabbix-web-deps-scl.noarch 0:5.0.47-1.el7 will be installed --> Processing Dependency: rh-php72 for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-bcmath for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-fpm for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-gd for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-ldap for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-mbstring for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch --> Processing Dependency: rh-php72-php-xml for package: zabbix-web-deps-scl-5.0.47-1.el7.noarch ---> Package zabbix-web-mysql-scl.noarch 0:5.0.47-1.el7 will be installed --> Processing Dependency: rh-php72-php-mysqlnd for package: zabbix-web-mysql-scl-5.0.47-1.el7.noarch --> Finished Dependency Resolution Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-fpm Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-ldap Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-xml Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-mbstring Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-bcmath Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-gd Error: Package: zabbix-web-mysql-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72-php-mysqlnd Error: Package: zabbix-web-deps-scl-5.0.47-1.el7.noarch (zabbix-frontend) Requires: rh-php72 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest为啥
最新发布
08-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值