当前位置: 首页 > article >正文

HarmonyOS 鸿蒙面试第一弹

鸿蒙面试第一弹

答案持续更新中

  • 1、自我介绍
  • 2、鸿蒙项目介绍
  • 3、你接触鸿蒙多久了
  • 4、项目给你,鸿蒙项目给你能独立完成吗?
  • 5、装饰器有哪些
  + @Component:用于定义可重用的UI组件。
  + @Entry:用于标识页面的入口组件。
  + @Reusable:实现组件复用,可以优化加载性能并减少应用卡顿。
  + @Preview:用于预览器预览,与@Entry和@Component配合使用可在预览器上进行视图展示。
  + @Observed(或@Observerd):与@ObjectLink装饰器联动,用于观察深层次的嵌套数据变化。
  + @Require:用于校验构造传参。
  + @BuilderParam 和 @Builder:自定义组件时,可只复用组件的逻辑,外部UI使用@BuilderParam传入。
  + @State:用于标记状态信息,表示该属性会随时间推移而发生变化,并与组件的UI渲染相关联。
  + @Prop:用于在子组件中定义那些需要从父组件接收的属性,建立单向同步关系。
  + @Link:与其父组件中的数据源共享相同的值,实现双向数据同步。
  + @Provide 和 @Consume:用于祖先与后代组件的双向数据同步,实现跨层级传递。
  + @StorageProp 和 @StorageLink:应用级别的UI状态存储装饰器。
  + @LocalStorageLink 和 @LocalStorageProp:页面级的UI状态存储装饰器。
  + @Watch:用于监听状态变量的变化,当状态变量变化时,触发相应的回调函数。
  + @Styles:用于定义并复用自定义样式,将多条样式设置提炼成一个方法。
  + @Extend:在@Styles的基础上,用于扩展原生组件样式。
  + @Concurrent:在使用TaskPool时,执行的并发函数需要使用该装饰器修饰。
  + @Track:class对象的属性装饰器,当一个class对象是状态变量时,@Track装饰的属性发生变化,只会触发该属性关联的UI更新。
  • 6、UIAbility、Page、Component生命周期 onCreate场景
    • UIAbility生命周期
+ Create:在应用加载过程中,UIAbility实例创建完成时触发。系统会调用onCreate()回调,在这个阶段,开发者可以进行页面初始化操作,例如变量定义、资源加载等。
+ Foreground:UIAbility实例切换到前台时触发。对应的是onForeground()回调,在UI可见之前触发,开发者可以在这个回调中申请系统需要的资源。
+ Background:UIAbility切换到后台时触发。也就是UIAbility的UI完全不可见之后,可以在onBackground()回调中释放资源或执行一些比较耗时的操作,如状态保存、停止定位功能等,以节省系统资源消耗。
+ Destroy:在UIAbility实例销毁时触发。对应的回调是onDestroy(),开发者可以在这个回调中进行系统资源释放、数据保存等操作。
+ Page生命周期(被@Entry装饰的组件)
+ onPageShow:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。这是进行页面数据加载、动画启动等操作的理想时机。
+ onPageHide:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。此时页面仍然保留在内存中,但不再对用户可见。开发者可以在此函数中暂停一些不必要的后台操作,以节省系统资源。
+ onBackPress:当用户点击返回按钮或执行其他返回操作时触发。开发者可以在此函数中执行一些清理工作,如保存用户输入、确认用户是否真的要离开页面等。
+ Component生命周期(被@Component装饰的自定义组件)
+ aboutToAppear:组件即将出现时回调该接口。具体时机为在创建自定义组件的新实例后,在执行其build()函数之前执行。允许在aboutToAppear函数中改变状态变量,更改将在后续执行build()函数中生效。
+ onDidBuild:组件build()函数执行完成之后回调该接口。但不建议在onDidBuild函数中更改状态变量、使用animateTo等功能,这可能会导致不稳定的UI表现。
+ aboutToDisappear:在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量,特别是@Link变量的修改可能会导致应用程序行为不稳定。
  • 7、API12、api9有什么区别
    • 这个问题我答的不是很好,也没有找到感觉很确切的答案,,各位大哥有清楚的评论区发一下链接,感谢
  • 9、状态存储有哪些
    • 这个答案在我博客里有详细写到
    • HarmonyOS 状态管理-请跳转我的博客享用
  • 10、持久化有哪些、如何封装首选项
    • 持久化可以用 PersistentStorage 结合 appstorage实现
    • 还可以用 首选项 Preferences 实现
    • 关系型数据库 RelationalStore 和 键值型数据库 KV-Store
    • 首选项封装-请跳转我的博客享用
  • 11、Web服务用过吗,如果实现H5传HM、HM传H5
    • HarmonyOS webview - 请跳转我的博客享用
  • 12、鸿蒙项目架构、har、hsp是否接触过
  • 13、Navigation 跨模块跳转
    • navigation 拥有路由栈 navpathstack ,配合路由表实现跨模块跳转
    • 直接去官网看吧,讲的比较详细
  • 14、FA模型、和Stage模型区别
  • 15、如何创建服务卡片、自己有做过吗
    • HarmonyOS 卡片能力 - 请跳转我的博客享用
  • 16、鸿蒙项目做过哪些优化
  • 17、鸿蒙特性
  • 18、分层架构

http://www.kler.cn/news/358069.html

相关文章:

  • 边缘计算技术的优势与挑战
  • Libevent源码剖析之reactor
  • 【热门主题】000004 案例 Vue.js组件开发
  • 【从零开始的LeetCode-算法】3192. 使二进制数组全部等于 1 的最少操作次数 II
  • 1. 解读DLT698.45-2017通信规约--预连接响应
  • linux tar 打包文件去掉文件所在路径
  • 图的最小生成树算法--普里姆(Prim)算法和克鲁斯克尔(Kruskal)算法
  • vue2项目 实现上边两个下拉框,下边一个输入框 输入框内显示的值为[“第一个下拉框选中值“ -- “第二个下拉框选中的值“]
  • ASP.NET Core8.0学习笔记(二十一)——EFCore关系配置API
  • 【基础篇】内存快照:宕机后,Redis如何实现快速恢复?
  • 大模型常见算子定义
  • 【ShuQiHere】使用域名代替 IP 地址进行 SSH 连接的完整指南*
  • Linux下基本指令(图文并茂、万字详解)
  • 62天框架安全(学习)
  • 如何将LiDAR坐标系下的3D点投影到相机2D图像上
  • 【c++】c++11多线程开发
  • 证件照小程序源码,前后端稳定运行
  • 手写模拟Spring的基本功能
  • 小白投资理财 - 解读利润指标
  • 【Spring】获取Cookie和Session(@CookieValue()和@SessionAttribute())