我可以: 邀请好友来看>>
ZOL星空(中国) > 软件星空(中国) > 电脑综合星空(中国) > 软件讨论星空(中国) > 2024最新鸿蒙开发面试题合集(2)
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

2024最新鸿蒙开发面试题合集(2)

37浏览 / 1回复

vrn0hn

vrn0hn

0
精华
169
帖子

等  级:Lv.5
经  验:4111
  • Z金豆: 638

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:
  • 注  册:2024-03-26
  • 登  录:2025-05-30
发表于 2024-12-05 17:21:54
电梯直达 确定
楼主

6. 父子组件如何通信?


当前(API 12)状态管理有两个版本 @Component和 @ComponentV2

1. 父子单向数据传递 @State+@Prop

@Prop装饰的变量可以和父组件建立单向的同步关系。@Prop装饰的变量是可变的,但是变化不会同步回其父组件。


2. 父子双向数据传递 @State+@Link 、@objectLink+@Link

子组件中被 @Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。


3. 跨组件通信 @Provide装饰器和 @Consume装饰器

@Provide和 @Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于 @Prop和 @Link,@Provide和 @Consume摆脱参数传递机制的束缚,实现跨层级传递。


4. @Observed装饰器和 @ObjectLink装饰器

对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第二层的属性变化是无法观察到的。这就要用到 @Observed/@ObjectLink装饰器


注意:@ObjectLink装饰器不能在 @Entry装饰的自定义组件中使用且 @ObjectLink 装饰的变量不能被赋值,只能对其属性进行赋值操作


7. 兄弟组件如何通信?


1. 通过公共父组件传递

如果两个组件是同一个父组件的子组件,可以通过父组件来传递数据或事件。父组件可以作为中介,将一个子组件的数据或事件传递给另一个子组件。


2. 使用全局状态管理

使用全局状态管理(如 AppStorage、LocalStorage)来存储共享数据。兄弟组件可以独立地读取和更新这个全局状态,从而实现通信。


8. 如何实现页面间的通信?


1. 使用 @Provide和 @Consume装饰器(见6.3)


2. 使用路由跳转传参


import { router } from '@kit.ArkUI';

router.pushUrl({

  url: 'pages/Detail', // 目标url

   params: paramsInfo // 添加params属性,传递自定义参数

 })

 // 返回指定页面并携带参数

 router.back({

  url: 'pages/Home',

  params: {

    info: '来自Home页'

  }

});


3. 使用导航跳转传参


this.pageStack.pushPath({ name: "PageOne", param: "PageOne Param" })

this.pageStack.pushPathByName("PageOne", "PageOne Param")


9. Navigation组件跳转和router跳转有什么区别?

  • Navigation:是路由容器组件,适用于模块内和跨模块的路由切换,一次开发,多端部署场景。Router位于页面栈管理节点 stage 下面,不提供导航容器的概念。

  • Navigation和 Router都支持跳转传参,但 Router对象中暂不支持方法变量。

  • Navigation:支持清理指定路由,页面栈没有上限,可以无限跳转。Router不支持清理指定路由且页面栈最大为32,页面栈到达32之后必须清除之后才能继续跳转。

  • Navigation:支持自定义转场动画和共享元素转场动画。 Router:仅支持简单自定义转场动画。

  • Navigation:支持通过 setInterception 方法设置路由拦截。Router:不支持路由拦截。

  • Navigation:支持沉浸式页面和模态嵌套路由。Router:不支持,需要通过窗口配置实现沉浸式页面。


总而言之,Navigation 组件在功能上更具丰富性和灵活性,特别是在处理复杂的导航结构、动效和路由管理方面。


而 Router 则提供了更基础的路由跳转功能,适合简单的路由需求。开发者可以根据应用的具体需求和设计选择最合适的路由方案


10. HarmonyOS与Android和iOS有什么区别?


HarmonyOS 是华为开发的一个开源、分布式的操作系统。它设计用于多种设备,包括智能手机、平板电脑、智能电视和物联网设备。与Android和iOS的主要区别在于:

  • 分布式架构:HarmonyOS支持跨设备无缝协作,允许设备之间共享硬件资源。

  • 性能:HarmonyOS优化了任务调度和内存管理,提高了性能和响应速度。

  • 安全性:HarmonyOS采用了多层次的安全策略,包括数据加密和安全启动。

  • 生态系统:HarmonyOS正在构建自己的应用生态系统,鼓励开发者使用Ark Ts和ArkUI框架。


vrn0hn

vrn0hn


精华

帖子

等  级:Lv.5
经  验:4111
发表于 2024-12-06 17:43:38 1楼
无论本科、还是学院派出身,如果当下你比较愁工作机会的话,可以看看这个?>>>https://jsj.top/f/o38ijj,前后端测试捞人,待遇还不错,也是大厂
高级模式
星空(中国)精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表