1
头图

1、执行如下代码后,页面显示的信息是

b06f3161e3cecd43ea277c41fde6cdf.png
fe3cac117b7178ec92378ea594b4864.png
e35a033352c9b965966c4bceb5acb68.png

答案:B

运行代码:


@Component
struct Child {
  label: string = 'Child';
  @Builder customBuilder() {};
  @Builder customChangeThisBuilder() {};
  @BuilderParam customBuilderParam: () => void = this.customBuilder;
  @BuilderParam customChangeThisBuilderParam: () => void = this.customChangeThisBuilder;

  build() {
    Row() {
      this.customBuilderParam()
      this.customChangeThisBuilderParam()
    }
  }
}

@Entry
@Component
struct Parent {
  label: string = 'Parent';
  @Builder componentBuilder() {
    Text(`${this.label}`)
  }

  build() {
    Row() {
      this.componentBuilder()
      Child({
        customBuilderParam: this.componentBuilder,
        customChangeThisBuilderParam: () : void => {
          this.componentBuilder()
        }
      })
    }
  }
}

运行结果:
1735353663801.png

参考:
@BuilderParam装饰器:引用@Builder函数
以下示例对this的指向做了介绍。


  build() {
    Column() {
      // 调用this.componentBuilder()时,this指向当前@Entry所装饰的Parent组件,即label变量的值为"Parent"。
      this.componentBuilder()
      Child({
        // 把this.componentBuilder传给子组件Child的@BuilderParam customBuilderParam,this指向的是子组件Child,即label变量的值为"Child"。
        customBuilderParam: this.componentBuilder,
        // 把():void=>{this.componentBuilder()}传给子组件Child的@BuilderParam customChangeThisBuilderParam,
        // 因为箭头函数的this指向的是宿主对象,所以label变量的值为"Parent"。
        customChangeThisBuilderParam: (): void => { this.componentBuilder() }
      })
    }
  }

2、下面代码定义的Repeat组件会执行哪一个组件生成函数的逻辑
105ce56998372c7f66b98f7b87b065b.png
9cfbbf38ed2f8d06cb2851530fe5b45.png

答案:D

代码:

Repeat(this.simpleList)
  .each((ri) => {
    ListItem() {
      Text(ri.item)
        .fontSize(20)
    }
  })
  .key((item: string, index: number) => 'a')
  .virtualScroll()
  .template("", (ri) => {
    ListItem() {
      Text('aaa' + ri.item)
        .fontSize(20)
    }
  })
  .template('a', (ri) => {
    ListItem() {
      Text(ri.item)
        .fontSize(20)
    }
  })
  .template('b', (ri) => {
    ListItem() {
      Text(ri.item)
        .fontSize(20)
    }
  })
  .templateId((item: string, index: number) => "")

参考:
each

each(itemGenerator: (repeatItem: RepeatItem<T>) => void): RepeatAttribute<T>
组件生成函数。template和templateId匹配不上的数据项走默认生成函数each。
说明:
each属性必须有,否则运行时会报错。
itemGenerator的参数为RepeatItem,该参数将item和index结合到了一起,请勿将RepeatItem参数拆开使用。

template
template(type: string, itemBuilder: RepeatItemBuilder<T>, templateOptions?: TemplateOptions): RepeatAttribute<T>
复用模板。
1735355564895.png
例子

// arr是Array<string>类型的数组
// 在List容器组件中使用Repeat,并打开virtualScroll
// 创建模板temp,该模板为数据创建Text组件
List() {
  Repeat<string>(this.arr)
    .each((obj: RepeatItem<string>) => {})
    .virtualScroll()
    .template('temp', (obj: RepeatItem<string>) => { ListItem() { Text(obj.item) }})
}

05c8fe479298d0bb1c39fb1e440e327.png

答案: D

应用主动设置深浅色模式

应用默认配置为跟随系统切换深浅色模式,如不希望应用跟随系统深浅色模式变化,可主动设置应用的深浅色风格。设置后,应用的深浅色模式固定,不会随系统改变。

onCreate(): void {
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK);
}

3、分析以下代码,找出针对该段代码正确的解释

b352515737b204f77c48b677f433185.png
e197829f5cf3d9c92b20f43ec45b9ad.png

答案:C

WebSocket连接开发步骤

import { webSocket } from '@kit.NetworkKit';
import { BusinessError } from '@kit.BasicServicesKit';

let defaultIpAddress = "ws://";
let ws = webSocket.createWebSocket();
ws.on('open', (err: BusinessError, value: Object) => {
  console.log("on open, status:" + JSON.stringify(value));
  // 当收到on('open')事件时,可以通过send()方法与服务器进行通信
  ws.send("Hello, server!", (err: BusinessError, value: boolean) => {
    if (!err) {
      console.log("Message send successfully");
    } else {
      console.log("Failed to send the message. Err:" + JSON.stringify(err));
    }
  });
});

744ff356f2a4b30c7089854e0cedf3b.png

答案:A

参考:

接入流程

verifyLocalPlayer(context: common.UIAbilityContext, thirdUserInfo: ThirdUserInfo): Promise<void>

合规校验接口,校验当前设备登录的华为账号的实名认证、游戏防沉迷信息,通过Promise对象获取返回值。

游戏调用verifyLocalPlayer接口,Game Service Kit校验当前设备登录华为账号的实名认证、游戏防沉迷信息。校验通过后,玩家进入游戏。若校验未通过请根据返回的错误码进行相应处理。


金刚鹦鹉
4.7k 声望250 粉丝