我们一起来读书吧 关注:135贴子:2,047
  • 1回复贴,共1

第三周:stage模型学习

只看楼主收藏回复

stage模型为何成为主推模型?
应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它共有5个构成要素,提供了两种模型机制,分为FA模型和Stage模型。其中,stage模型由于可以做到多个应用组件共享一个ArkTS引擎实实例,实现了多组件共享对象和状态,同时减少了内存占用,从而成为主推模型。
UIAbility组件
UIAbility是stage模型提供的组件类型之一,是包含UI界面的应用组件,主要用于和用户交互,FE可以类比前端组件来学习
层次关系类比:
应用程序 包含多个 stage模型 包含多个 UIAbility ===> SPA 包含多个 page 包含多个 vue/react 组件
生命周期类比:
UIAbility具备自己的生命周期,具体包括Create、Foreground、Background、Destroy四个状态
其中create和destroy可类比vue的created和destroyed,Foreground、Background是比较新的概念,简单理解为程序是否可见,字面意思就是前台/后台
WindowStage的概念
字面意思来理解:模型窗口,先简单理解为浏览器窗口/webview,主要负责UI渲染,设置事件监听、订阅等
创建时机:create到Foreground之间
销毁时机:destory之前,类比vue的beforeDestory,销毁时注销之前注册事件,内存回收
应用上下文Context
官方定义:Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用开发路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等
如何获取: 实例化一个UIAbility,在create生命周期中,会直接挂载在实例对象上,通过this直接获取,let uiAbilityContext = this.context;
使用场景: 官方提供了四大类场景,获取应用文件路径,获取和修改加密分区,创建其他应用或其他Module的Context,订阅生命周期
类比理解: 可类比vue自定义插件,在创建vue实例前通过Vue.use内置了自定义的api,可供实例全局使用,如this.globalToast(xxx),只不过Context是官方内置而已


IP属地:北京1楼2024-02-22 09:51回复


    IP属地:北京来自Android客户端2楼2024-02-22 19:38
    回复