Laya 1.x UI组件化
author @ixenos
1. UI组件的理解
- prefab: 可复用的UI预制体
- runtime: 以继承或组合的形式控制prefab的逻辑类
- UI组件: prefab + runtime 可复用的带有逻辑的UI预制体
2. Laya 1.x UI组件化的几种形式
2.1 匿名组件
- 简述: 拓展脚本 + 匿名UI部件
- 实现方式
- 在业务UI中拼接UI部件
- 编写继承于UI部件容器的逻辑类
- 通过getChildByName匿名引用子UI部件
- UI编辑器新建prop脚本, 对应逻辑类的路径
- prop脚本附着到UI部件上
- 原理
- 编译后, 节点的 UI部件 替换为 继承于逻辑类的UI部件
- 优点
- 缺点
- 不能保证配置和样式的唯一性
- 再复用时需要到已使用处去拷贝, 跟业务熟悉度相关, 增加复用门槛
2.2 Runtime组件
- 简述: Runtime + prefab UI类
- 实现方式
- 在prefab目录下拼接UI类
- 编写继承于该UI类的逻辑类
- UI类使用时填写Runtime属性为逻辑类全路径名(包含namespace的路径)
- 原理
- 编译后, 节点的 prefab UI类 替换为 Runtime类
- 优点
- 保证配置和样式的唯一性
- 归类完善, 查找快, 直接从Prefab目录下查找
- 缺点
2.3 嵌套Runtime组件
- 简述: 拓展脚本/Runtime + prefab UI类内部的匿名UI部件
- 实现方式
- 在prefab目录下拼接UI类
- UI类内部持有UI逻辑部件: <拓展脚本 + 匿名UI部件> 或 <Runtime + prefab UI类>
- 逻辑类通过引用UI组件类内部的UI逻辑部件
- 原理
- 优点
- 支持自定义属性设置
- 再复用时无需关注逻辑类, 业务逻辑可以直接引用 prefab UI 内部的 带有拓展脚本的UI部件
- 缺点
3. 总结
- Laya 1.x UI组件化的最佳实践: 嵌套Runtime组件
posted @
2023-03-09 00:59
ixenos
阅读(
90)
评论()
编辑
收藏
举报