美文网首页Laya技术分享
Laya界面组件化的实现

Laya界面组件化的实现

作者: JUNE言JUNE语 | 来源:发表于2017-04-10 00:39 被阅读184次

在实习的这一个月里,做了之前从来没有专门去学习的前端,我感觉学到的最重要一点就是前端的组件化思想。

最近写了那几篇关于Laya的文章都有提到过我们组件化的一个实现,今天就主要来讲一下这个。

首先先讲解一下组件化。主要是组件化的两个好处吧。

  1. 减少代码的冲突。一般的团队协作过程中,采用IDE生成UI代码的方法是非常容易产生代码冲突,而且往往这种冲突是难以解决的(可以想象一下当你跟你的队友同时改了同一个UI文件,如果有仔细去看一下IDE生成的UI代码就可以发现,即时稍微移动了某个空间,可能代码都会改动好几处,而且一般的UI代码会非常的冗长,这样的代码要去merge是有多困难)
  2. 更好地整理逻辑代码,一方面减少bug的产生,另一方面是当bug产生的时候,组件化的代码逻辑会更加的清晰,有利于我们修复bug。
  3. 前端的组件复用

如何实现

  1. 在设计层面将界面组件化
    设计上我们需要提前预想到前端需要如何组件化,一般情况下我们是按照界面上完成共同功能的控件放在同一个组件UI上。
    例如棋牌游戏中多个玩家都共同有一个展示任务相关的模块,包括头像、金钱、胜率之类的,可能同个房间内有多个玩家,那么就可以直接将展示玩家信息的所有控件组件化。
  2. 实现
    实现上面一般情况下就是使用一个UI的类去继承对应的UI,对应继承的类的this指针可以直接获取到UI父类的所有控件信息。
    例如我们的UI中有一个Game的类,这个类是继承了我们最底层的UI,整个游戏的画布。所有的组件都是依赖于该game.ui。通过将game添加到stage,然后其他的ui就添加到game中来显示。同时我们的布局都是在game.ui添加空白的精灵(sprite),然后将对应的组件实例化后addChil到对应的sprite上。
    对于game类,可以通过this.getChildByName来获取对应的sprite,通过管理sprite我们就可以直接设置对应的控件的位置。
    而对于其他具体的组件,一般情况下还需要考虑对应的动画逻辑。创建对应的类来继承UI,一般情况下会将组件上所有的控件在类中用属性保存起来,通过getChildByName来赋值

相关文章

  • Laya界面组件化的实现

    在实习的这一个月里,做了之前从来没有专门去学习的前端,我感觉学到的最重要一点就是前端的组件化思想。 最近写了那几篇...

  • Android 复杂界面开发实践之 ViewController

    ViewController 是一种界面开发组件化的实现方式,利用它可以将一些复杂的 UI 界面开发组件化, 从而...

  • 【Vue】组件

    Vue的两大核心 数据驱动 - 数据驱动界面显示 模块化 - 复用公共模块,组件实现模块化提供基础 组件基础 组件...

  • 任职要求

    1. 精通 iOS 平台的模块化设计架构,能够设计出 SDK 和 UI 组件方案,并实现定制化UI组件界面,动画;...

  • Laya 滚动组件--ScrollBar

    问题: laya中 list 等组件对vScrollBarSkin设置后才有滚动功能 laya中多少组件自带了滚动...

  • iOS有关架构组件化的文章链接

    iOS应用架构谈 组件化方案 iOS 组件化方案探索 iOS移动端架构的那些事 如何优雅的实现界面跳转 之 统跳协...

  • Aroute之基础使用

    是什么 简单的说就是替代startActivity(),可以在项目组件化中实现不同module的界面通讯。 应用场...

  • IOS工具(二)cocoapod 实现 ios 组件化

    @[TOC](cocoapod 实现 ios 组件化) cocoapod 实现 ios 组件化 一 cocoa ...

  • 案例-(Vue组件)购物车

    1 实现组件化布局 把静态页面转换成组件化模式把组件渲染到页面上 2 实现 标题和结算功能组件 标题组件实现动态渲...

  • 代码管理| 创建自己的私有Cocopods库

    前言 iOS组件化的实现基本基于cocoapods,如何使用cocoapods创建自己的组件库,是实现组件化的第一...

网友评论

    本文标题:Laya界面组件化的实现

    本文链接:https://www.haomeiwen.com/subject/fvgdattx.html