鸿蒙极速入门(六)-加载请求状态管理-LoadState+观察者模式

背景

1、在ArkTS的中,没有明确的可管理的加载请求状态的脚手架,在进行请求过程中,无法简单的进行交互响应。

2、参考中的LoadState写了一个简单的脚手架,以便在日常过程中,管理加载请求状态和UI交互。

脚手架说明与

1、状态机LoadState

使用一个状态机,分别对应网络请求过程中的Loading(发起请求)、Loaded(请求成功)、LoadError(请求失败)状态,并支持链式调用:

2、观察者模式

ArtTS没有提供开箱即用的观察者模式,也无法直接使用RxJS框架,所以自己手写一个简单的ValueNotifier作为观察者实现类:

使用示例

以获取一个车辆详情的场景来模拟网络请求和

1、ViewModel

2、页面处理

@Component
export struct VehicleComponent {
  private vm: VehicleViewModel = new VehicleViewModel();

  aboutToAppear() {

    this.vm.lsVehicleDetail.addListener(() => {
      this.vm.lsVehicleDetail.value?.loading(() => {
        // 开始网络请求
        .log(`hello1:start Loading`);
      }).loaded((result) => {
        let data = result?.data() as 
        console.log(`hello2:${result} - ${data}`);
      }).loadError((error) => {
        console.log(`hello3:${error?.code} - ${error?.message}`);
      });
    });
  }
}

3、打印结果

hello1:start Loading
hello2:[object Object] - aa
hello3:123 - error

给TA打赏
共{{data.count}}人
人已打赏
移动端

HarmonyOS 高级特性

2023-11-18 14:14:01

移动端

鸿蒙极速入门(二)-开发准备和HelloWorld

2023-11-18 14:14:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索