承接前两期的布局与样式当我们把目光从“页面怎么画”转移到“应用怎么搭”时架构设计与底层原理就成了区分初级与中高级开发者的分水岭。17. 组件间传值通讯的方式有哪些在 ArkTS 的声明式范式中数据流向通常是“自上而下”的单向流动但在复杂场景下也需要双向绑定或全局共享父子组件传值PropsProp父传子子组件修改不影响父组件单向。Link父子双向绑定子组件修改父组件同步更新需用$符号传参。PropvsLink如果子组件只是展示或局部修改用Prop如果需要联动父级状态如开关切换用Link。跨组件/页面传值全局状态管理AppStorage应用全局状态类似全局变量常用于用户登录态、主题模式等全应用共享的数据。LocalStorage页面级或组件级的状态共享常用于页面跳转时的参数传递或页面内部的模块间通信。Emitter事件发射器适用于完全不相关的两个组件之间进行解耦通信发布/订阅模式。深浅拷贝传递对于简单数据直接传递对于复杂对象若要避免子组件意外修改影响父组件建议使用深拷贝JSON.parse(JSON.stringify(obj))或Observed/ObjectLink。18/19. 组件与页面的生命周期理解生命周期有助于我们在合适的时机进行数据初始化和资源释放。页面生命周期PageaboutToAppear页面即将显示时触发。关键点此时页面 UI 还未构建适合在此处进行数据拉取防止页面白屏。onPageShow页面显示后触发适合做埋点统计或恢复动画。onPageHide/onBackPress页面隐藏或点击返回键时触发适合做数据保存或拦截返回操作。组件生命周期ComponentaboutToRender自定义组件即将渲染时触发API 11适合在此预计算一些复杂的 UI 状态。aboutToDisappear组件即将销毁时触发适合清理定时器或取消网络请求。20. Ability 的生命周期系统级Ability 是鸿蒙应用的基本组成单元其生命周期由系统管理反映了应用从启动到销毁的全过程onCreateAbility 实例创建全局初始化如读取配置。onWindowStageCreate窗口 Stage 创建此时可以设置页面路径通常为windowStage.loadContent。onForeground应用切换到前台此时应恢复播放视频、刷新数据。onBackground应用切换到后台此时应暂停耗时操作、释放内存。onWindowStageDestroy​ onDestroyAbility 彻底销毁清理所有残留资源。21. 什么是泛型泛型的作用泛型Generics允许我们在定义函数、接口时不预先指定具体类型而在使用时再指定。作用 1代码复用。例如封装一个通用的网络请求工具requestT传入User类型就返回User无需为每种数据写一遍逻辑。作用 2类型安全。在编译期进行类型检查避免了 JavaScript 中频繁的any类型转换导致的运行时错误。22. 装饰器全家桶Observed/ObjectLink/Watch/Builder/BuilderParamObservedObjectLink解决嵌套对象的响应式问题。普通的State无法观察到对象内部属性的变化。用Observed修饰类ObjectLink在子组件中接收即可实现深层属性的双向绑定。Watch状态监听器。给变量加上Watch(onChange)当变量变化时自动触发自定义函数适合做防抖或联动计算。BuilderBuilderParamUI 复用的终极方案。Builder用于抽取重复 UI 结构BuilderParam允许父组件向子组件的Builder中传入自定义内容实现高度灵活的组件封装如自定义弹窗头部。23. Prop 和 Link 的作用和区别Prop单向绑定。父组件的数据传给子组件子组件可以修改自己的拷贝但修改不会同步回父组件。Link双向绑定。子组件的修改会直接修改父组件的状态。它必须在创建时传入$变量名带$符号。避坑指南切忌在子组件中直接用Link绑定一个基本类型如 string/number。因为双向绑定意味着父子指向同一块内存对于基本类型是引用赋值极易导致状态混乱。24. 首选项Preferences和 PersistentStorage 的区别Preferences类似于前端的localStorage。它是一个键值对KV存储适合存用户的设置项如音量、字体大小。它是异步 API。PersistentStorage这是 HarmonyOS 3.0 推出的持久化状态管理装饰器。它结合了AppStorage和底层持久化能力。用法StorageLink(key) varName: number 0。你只需要像操作普通变量一样操作它系统会自动帮你存盘和读盘且支持响应式更新。25. 什么是三层架构有哪三层每层的作用是什么在鸿蒙应用开发中为了应对复杂的业务需求并实现多端复用通常采用以下三层架构自顶向下1. 产品定制层Product Customization Layer定位应用的入口面向特定设备如手机、折叠屏、车机或特定场景如标准版、海外版。职责专注于 UI 设计、资源配置和特定场景的交互逻辑。它不包含核心算法而是组装下层提供的能力。依赖关系依赖基础特性层和公共能力层来实现具体功能。2. 基础特性层Feature Layer定位位于公共能力层之上是相对独立的业务功能集合。职责每个模块如购物车、个人中心都具备高内聚、低耦合的特点。它为产品定制层提供具体的业务 UI 和逻辑支持。典型实践应用底部导航栏的每个选项都是一个独立的业务模块对应基础特性层中的一个 Feature。3. 公共能力层Common Capability Layer定位应用的基石存放所有共享的基础能力。职责公共 UI 组件通用的按钮、弹窗、列表等。数据管理网络请求封装、数据库操作RDB、数据缓存。外部交互设备 I/O、文件操作、权限管理等。工具库日期处理、字符串加密、日志打印等。架构优势通过这种分层可以实现业务逻辑与 UI 表现的解耦。当更换设备形态时只需修改产品定制层基础特性和公共能力层可以完全复用极大提升了开发效率。26. 什么样的项目用单层架构什么样的项目用多层架构单层架构Monolithic适用场景工具类应用、单页面 Demo、简单的静态页面展示。特点所有代码UI、逻辑、网络混杂在一个文件中。优缺点开发速度快代码量小但难以维护无法复用无法应对复杂交互。多层架构Layered适用场景企业级应用、大型商业 App如电商、社交、金融、需要适配多设备的项目。特点严格划分职责单向依赖。优缺点代码结构清晰利于团队协作前端写 UI后端写逻辑便于单元测试和后期维护。虽然初期搭建成本较高但长期收益巨大。