2
头图

1、UIAbility组件与UI的数据同步方式有以下哪几种?

e14eb9c34dacaa8c1ff60cdff499343.png

答案:ABC

UIAbility组件与UI的数据同步

  • 使用EventHub进行数据通信:在基类Context中提供了EventHub对象,可以通过发布订阅方式来实现事件的传递。在事件传递前,订阅者需要先进行订阅,当发布者发布事件时,订阅者将接收到事件并进行相应处理。
  • 使用AppStorage/LocalStorage进行数据同步:ArkUI提供了AppStorage和LocalStorage两种应用级别的状态管理方案,可用于实现应用级别和UIAbility级别的数据同步。

2、以下关于Navigation页面跳转相关方法的说法正确的是
e2519ddbb83ad49e35e0c6ba956bdbd.png

答案:AD

removeByName

pushPathByName
将name指定的NavDestination页面信息入栈,传递的数据为param。

replacePathByName
将当前页面栈栈顶退出,将name指定的页面入栈。

popToName

3、关于@LocalBuilder装饰器的特性,下列说法正确的是
b9b2c08e62c7b6d4e8681df2838e3db.png

答案: ABC

@LocalBuilder装饰器: 维持组件父子关系

自定义组件内自定义构建函数

  • 允许在自定义组件内定义一个或多个@LocalBuilder方法,该方法被认为是该组件的私有、特殊类型的成员函数。
  • 自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。
  • 在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。

限制条件

  • @LocalBuilder只能在所属组件内声明,不允许全局声明。
  • @LocalBuilder不能被内置装饰器和自定义装饰器使用。
  • 自定义组件内的静态方法不能和@LocalBuilder一起使用。

4、以下关于@Builder装饰器的特性描述正确的有
41c3a9b954da5decda07e1bb5f76bb7.png

答案:CD

  • 私有自定义构建函数允许在自定义组件内、build方法和其他自定义构建函数中调用。
  • @Builder通过按引用传递的方式传入参数,才会触发动态渲染UI,并且参数只能是一个。
  • 按值传递参数,调用@Builder装饰的函数默认按值传递。当传递的参数为状态变量时,状态变量的改变不会引起@Builder方法内的UI刷新。

6、在ArkUI中,以下关于状态管理机制的描述正确的是
75f955b78388094f2d5044d66269ced.png

答案: ACD

状态管理概述

在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。

自定义组件拥有变量,变量必须被装饰器装饰才可以成为状态变量,状态变量的改变会引起UI的渲染刷新。如果不使用状态变量,UI只能在初始化时渲染,后续将不会再刷新。

7、以下关于@Builder自定义构建函数的使用描述正确的是
a6f897b6ececb3994846c22be700589.png

答案: ACD

wrapBuilder:封装全局@Builder

当开发者在一个struct内使用了多个全局@Builder函数,来实现UI的不同效果时,多个全局@Builder函数会使代码维护起来非常困难,并且页面不整洁。此时,开发者可以使用wrapBuilder来封装全局@Builder。

当@Builder方法赋值给变量或者数组后,赋值的变量或者数组在UI方法中无法使用。

8、以下关于wrapBuilder描述正确的是
59deeaedb0aef8bedb820fa0f4aecf7.png
答案:ACD

限制条件
wrapBuilder方法只能传入全局@Builder方法。
wrapBuilder方法返回的WrappedBuilder对象的builder属性方法只能在struct内部使用。


金刚鹦鹉
4.9k 声望257 粉丝