HarmonyOS 鸿蒙Next Preview机制限制太多,很难用起来

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Preview机制限制太多,很难用起来

Preview即时预览机制可以帮助开发者快速了解ui代码效果,也可以帮助开发者快速定位ui代码。当时目前Preview机制的限制太多,只要有任何的异常,就会报错白屏,导致项目复杂了以后,基本没办法用

能否跑预览的时候,优先把ui画出来,对于相关异常进行内部try-catch处理,而不是直接白屏。目前非常多的因素导致白屏和预览不可用
- @Consume@Link@Prop等需要父级页面传递参数的页面
- 需要路由传递参数的页面
- aboutToAppear等生命周期调用的一些业务方法,但相关调用无法在预览时初始化,导致报错

虽然通过mock等手段能解决其中部分问题,但是每次发现预览不出,要去看log,解问题,写mock本身链路就比较长。一旦遇到复杂页面,以上的步骤难度更大。而相关投入性价比极低。何况像@Consume这类是mock无法解决的。

所以更希望是即便有一些异常,可以内部try-catch住,不影响预览的生成,如果缺少一些属性,就用underline等生效到布局预览中。避免让开发者把太多的精力花在mock所有异常上

业界方案对比:对比Android的layout xml+DataBinding,同样确实了属性数据,但不影响layout的xml显示出布局效果和UI点击定位代码。对于一些需要mock数据显示到预览上的情况,layout xml只需要形如用tools:visibility的标签即可在xml上快速实现


更多关于HarmonyOS 鸿蒙Next Preview机制限制太多,很难用起来的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

可以参考一下:

// 建议通过在ParentComp上添加[@Preview](/user/Preview),预览ParentComp来查看ChildComp的预览效果
[@Preview](/user/Preview) //组件预览
[@Component](/user/Component)
struct ParentComp {
 // [@Provide](/user/Provide)装饰的变量reviewVotes由入口组件ParentComp提供其后代组件
 [@Provide](/user/Provide) reviewVotes: number = 10;

 build() {
   Column() {
     Button(`reviewVotes(${this.reviewVotes}), give +1`)
       .onClick(() => this.reviewVotes += 1)
     ChildComp()
   }
 }
}

// [@Preview](/user/Preview) 不建议直接预览ChildComp
[@Component](/user/Component)
struct ChildComp {
 // [@Consume](/user/Consume)装饰的变量通过相同的属性名绑定其祖先组件ParentComp内的[@Provide](/user/Provide)装饰的变量
 [@Consume](/user/Consume) reviewVotes: number;
 build() {
   Column() {
     Text(`reviewVotes(${this.reviewVotes})`)
     Button(`reviewVotes(${this.reviewVotes}), give +1`)
       .onClick(() => this.reviewVotes += 1)
   }
   .width('50%')
 }
}

更多关于HarmonyOS 鸿蒙Next Preview机制限制太多,很难用起来的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next Preview机制的限制确实较为严格,这主要是为了保障系统的稳定性和安全性。Preview版本通常用于测试和开发目的,旨在收集反馈并优化系统。因此,相比于正式版本,Preview版本在应用安装、权限管理、系统配置等方面会有更多的限制。

这些限制可能包括但不限于:

  1. 应用兼容性:Preview版本可能不支持所有已发布的应用,特别是那些依赖特定系统API或特性的应用。
  2. 权限管理:Preview版本对应用的权限管理可能更加严格,需要开发者进行额外的配置和申请。
  3. 系统配置:某些系统配置选项可能在Preview版本中不可用或受限,以确保系统的稳定性和安全性。

由于Preview版本的这些限制,确实可能会给开发者和用户带来一定的不便。然而,这些限制也是系统开发和测试过程中不可或缺的一部分。

如果您在使用HarmonyOS 鸿蒙Next Preview版本时遇到了困难,可以尝试查阅官方文档或社区论坛以获取更多信息。但请注意,由于Preview版本的特殊性,某些问题可能无法得到立即解决。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部