鸿蒙开发:DevEcoStudio中的代码提取

简介: 如何快速的实现?可能很多老铁会第一时间想到,把代码复制出来呗,这有什么难的?虽然手动复制出来可以实现,但是未免太浪费时间了,本篇文章就告诉大家一个便捷的方式来实现,那就是DevEcoStudio中的代码提取。

前言


本文基于DevEco Studio 5.0.5 Release


有这样的一个场景,当你初始写UI的时候,没有考虑到后面的代码复用,想要把一段重复的组件属性进行抽成一个方法?该如何快速的执行?再举一个常见的场景,一个函数,你写了很多的代码,想要把一部分代码,快速的抽成一个单独的函数,用于简化当前的代码逻辑,如何快速的实现?可能很多老铁会第一时间想到,把代码复制出来呗,这有什么难的?虽然手动复制出来可以实现,但是未免太浪费时间了,本篇文章就告诉大家一个便捷的方式来实现,那就是DevEcoStudio中的代码提取。


举一个很简单的例子,如下代码,如何快速的把Text组件设置的属性,快速的抽成一个函数调用呢?


@Entry
@Component
struct Index {
  build() {
    Column() {
      Text("我是测试内容1")
        .fontColor(Color.Red)
        .fontSize(16)
        .fontWeight(FontWeight.Bold)
    }.width('100%')
    .height("100%")
    .justifyContent(FlexAlign.Center)
  }
}


很简单,只需要选中你要抽取的属性,右键选择Refactor,然后选择Extract Method...即可,它便会自动抽成一个扩展组件样式函数。



执行结果如下:


@Entry
@Component
struct Index {
  build() {
    Column() {
      Text("我是测试内容1")
        .newExtend()
    }.width('100%')
    .height("100%")
    .justifyContent(FlexAlign.Center)
  }
}
@Extend(Text)
function newExtend() {
  .fontColor(Color.Red)
  .fontSize(16)
  .fontWeight(FontWeight.Bold)
}


动态效果如下:



在执行完Extract Method之后,扩展样式函数是带有方框的,我们可以在方法上进行更改名字,它会自动同步生成的函数进行更改。



有一点需要说明,如果你是私有的属性,也就是组件本身自己的属性,一般它会直接生成@Extend修饰的函数,如果是通用属性,可提取为@Styles或@Extend装饰的函数。


如下所示,我选中的是通用的属性,就可以看到给出要选择的生成选项:



提取新方法/函数(Method)


在前言中,我们简单列举了一个例子,快速实现了组件的属性函数生成,这种提取方式,就是方法提取,除此之外,在实际的开发中,我们不仅可以提取属性,也可以提取组件。


我们可以把一个重复的组件进行提取,方便页面进行复用,或者简化代码层级,都可以进行对组件的提取,提取也是很简单,和属性的提取是一样的,选中你要提取的组件范围,右键选择Refactor,然后选择Extract Method...即可,它便会自动抽成一个@Builder修饰的函数。



你可以选择全局或者当前页面中:



生成的代码如下:


@Entry
@Component
struct Index {
  build() {
    Column() {
      this.newLocalBuilder()
    }.width('100%')
    .height("100%")
    .justifyContent(FlexAlign.Center)
  }
  @Builder
  newLocalBuilder() {
    Text("我是测试内容1")
      .fontColor(Color.Red)
      .fontSize(16)
      .fontWeight(FontWeight.Bold)
  }
}


以上呢是针对组件或者组件的属性进行提取,同样的,如果你想把一个方法中的逻辑提取成一个新的方法也是支持的,使用方式和上面一样,都是选中要提取的代码。


比如我想把下面的一段代码进行提取:



提取之后代码如下:


add(a: number, b: number): number {
    return this.newMethod(a, b)
  }
  private newMethod(a: number, b: number): number {
    return a + b
  }


当然了,以上呢只是简单的案例,在实际的开发中,还请结合业务进行提取。


提取变量/常量


变量和常量的提取也是十分的简单,都是通过右键选择Refactor,变量的话选择Extract Variable,常量选择Extract Constant,比如我要下面的代码抽成一个变量:



提取之后代码如下,同样的,也有一个方框,你可以同步进行修改变量的名字。



常量和变量唯独关键字不一样,常量是const,变量是let。


相关总结


其实我们看到,还有一个接口提取,也就是支持选中对象自变量进行提取成接口,使用方式如下:



因为目前的ArkTs已经不支持这种语法了,一般我们也不会这样去写,所以这个大家忽略即可。


以上的使用方式是支持快捷按钮的,系统不一样,还有自己设置的快捷键不一样,其快捷方式也不一样,大家在选择的时候,右边都有提示,记住即可。


本文标签:鸿蒙开发工具/DevEco Studio


相关文章
|
20天前
|
开发者
鸿蒙开发:资讯项目实战之项目初始化搭建
目前来说,我们的资讯项目只是往前迈了很小的一步,仅仅实现了项目创建,步虽小,但概念性的知识很多,这也是这个项目的初衷,让大家不仅仅可以掌握日常的技术开发,也能让大家理解实际的项目开发知识。
鸿蒙开发:资讯项目实战之项目初始化搭建
|
14天前
|
缓存 JavaScript IDE
鸿蒙开发:基于最新API,如何实现组件化运行
手动只是让大家了解切换的原理,在实际开发中,可不推荐手动,下篇文章,我们将通过脚本或者插件,快速实现组件化模块之间的切换,实现独立运行,敬请期待!
鸿蒙开发:基于最新API,如何实现组件化运行
|
20天前
|
SQL 弹性计算 数据库
鸿蒙5开发宝藏案例分享---优化应用时延问题
鸿蒙性能优化指南来了!从UI渲染到数据库操作,6大实战案例助你提升应用流畅度。布局层级优化、数据加载并发、数据库查询提速、相机资源延迟释放、手势识别灵敏调整及转场动画精调,全面覆盖性能痛点。附赠性能自检清单,帮助开发者高效定位问题,让应用运行如飞!来自华为官方文档的精华内容,建议收藏并反复研读,共同探讨更多优化技巧。
|
20天前
|
缓存
鸿蒙5开发宝藏案例分享---Swiper组件性能优化实战
本文分享了鸿蒙系统中Swiper组件的性能优化技巧,包括:1) 使用`LazyForEach`替代`ForEach`实现懒加载,显著降低内存占用;2) 通过`cachedCount`精准控制缓存数量,平衡流畅度与内存消耗;3) 利用`onAnimationStart`在抛滑时提前加载资源,提升构建效率;4) 添加`@Reusable`装饰器复用组件实例,减少创建开销。实际应用后,图库页帧率从45fps提升至58fps,效果显著。适合处理复杂列表或轮播场景,欢迎交流经验!
|
20天前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
20天前
|
数据库
鸿蒙5开发宝藏案例分享---跨线程性能优化指南
本文深入探讨鸿蒙系统跨线程序列化性能优化,借助DevEco Profiler工具定位序列化瓶颈。通过Sendable接口改造、数据瘦身等方法,将5万本书对象的序列化耗时从260ms+降至<8ms,甚至<1ms。总结避坑经验,建议常态化使用Profiler检测,避免传递大对象,提升多线程开发效率。
|
缓存 数据管理 Shell
鸿蒙5开发宝藏案例分享---性能分析简介
鸿蒙开发资源大揭秘!文中整理了HarmonyOS官方提供的100+场景化案例,涵盖性能优化、UI设计、设备适配等全链路内容。重点解析三大神级案例:折叠屏悬停交互、万人列表流畅滚动和服务卡片实时刷新,附带完整代码与避坑指南。通过精准搜索、代码移植和调试技巧,高效利用这些宝藏资源,助你省时省力避开开发陷阱。更有抖音级短视频流畅度优化方案等彩蛋等待探索!
|
20天前
|
Java
鸿蒙5开发宝藏案例分享---性能检测工具揭秘
鸿蒙性能优化工具全揭秘!本文详解官方隐藏的性能调优利器,包括静态检测(Code Linter)与动态检测(AppAnalyzer)。通过实战案例解析稀疏数组陷阱、循环更新状态变量等问题,并提供优化方案。同时附带高频性能规则速查表及黄金法则,助你高效避坑。开发时建议双开工具,实时检测问题,提升应用性能。
|
缓存 Shell 开发者
鸿蒙5开发宝藏案例分享---性能体验设计
这是一篇关于HarmonyOS性能优化的开发者实践指南。文章结合官方文档案例与代码实现,分享了流畅性设计的实用技巧,包括感知流畅性的核心原则、交互流畅实战案例(如列表滑动优化和点击响应加速)、视觉流畅的动效设计,以及性能检测工具ArkUI Inspector的使用方法。最后还提供了冷启动优化的具体策略。通过这些内容,帮助开发者打造60帧无卡顿的鸿蒙应用,实现操作响应快速、动效流畅的目标。
|
20天前
|
存储 C++ UED
鸿蒙5开发宝藏案例分享---优化应用包体积大小问题
本文分享了鸿蒙应用包体积优化的实用技巧,包括SO库压缩、HSP动态共享包、OHPM依赖冲突解决、按需加载和扫描工具定位优化点等方法。通过具体配置示例和实战经验,如启用`compressNativeLibs`、使用共享资源包、强制统一依赖版本以及动态导入功能模块,帮助开发者显著减少包体积,提升用户体验。文中还提供了图标优化、资源混淆和无用代码剔除等补充建议,助力打造更轻量的鸿蒙应用。