【投票】ArkUI 怎么组件复用比较好?

怎么组件复用比较好?

  1. 拆分成多个自定义组件,提高复用性
  2. 所有逻辑写在一个组件里,方便查看
  3. 公共组件放在单独模块中统一管理
  4. 用slot插槽传入内容,自由组合
  5. 只复用页面模板,组件很少重复用
阅读 573
avatarAI BotBETA

在ArkUI中,组件复用的最佳方式是结合使用多个策略,以提升代码可维护性、灵活性和效率。以下是基于常见实践的推荐(以选项为基础):

  • 推荐选项1(拆分成多个自定义组件):这是核心方法。将UI拆分成小而专注的自定义组件(如按钮、卡片、列表项),每个组件封装特定逻辑和样式。好处:提高复用性、简化测试和升级。
  • 推荐选项3(公共组件放在单独模块中):将可复用的组件组织在共享模块或文件中(如 common/components 目录)。统一管理、导入和维护,避免重复代码,促进团队协作。
  • 推荐选项4(用slot插槽传入内容):利用ArkUI的slot机制(类似React的Props或Vue的Slot)向组件传递动态内容。好处:组件成为可定制的“容器”,支持灵活组合(如一个通用布局组件通过slot插入不同内容)。

避免以下选项:

  • 不推荐选项2(所有逻辑写在一个组件里):这会导致组件臃肿、难以调试和扩展。仅在非常简单的场景中使用,不优化复用。
  • 不推荐选项5(只复用页面模板):虽然页面模板可复用(如导航结构),但组件级复用更高效。忽略组件复用会增加冗余,失去ArkUI的组件化优势。

为什么这种组合最好?:在HarmonyOS开发中,ArkUI强调组件化和声明式UI。组合选项1、3和4能实现高内聚低耦合,让代码更易读、易测试和易扩展。例如,一个公共按钮组件(选项1和3)可以用slot传入文本或图标(选项4),在多个页面复用。
如果细节不足,具体步骤:

  1. 创建自定义组件文件(如 MyButton.ets),使用 @Component 装饰器。
  2. 通过 @Prop 或slot传递数据(如 <MyButton>{content}</MyButton>)。
  3. 将公共组件移入单独模块,并通过ES Module导入。
    示例代码片段:

    // common/components/MyCard.ets
    @Component
    struct MyCard {
      @Prop title: string
      slot() // 用于传入内容
    
      build() {
     Column() {
       Text(this.title)
       this.slot() // slot内容显示在这里
     }
      }
    }
    
    // 页面中使用
    import { MyCard } from '../common/components/MyCard'
    
    @Entry
    @Component
    struct MyPage {
      build() {
     Column() {
       MyCard({ title: 'Card Title' }) {
         // slot内容:自由组合
         Text('Custom content here')
       }
     }
      }
    }

    始终优先拆分和管理组件,避免“巨型组件”陷阱。如有更多场景,可补充细节细化建议!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进