地址:联系地址联系地址联系地址
电话:020-123456789
传真:020-123456789
邮箱:admin@aa.com
复用思想是端编的复软件编程的核心理念之一,在OOA&OOD的程浅编程环境下 ,复用的用机主角是继承和接口,在VUE里,端编的复又有哪些机制可以帮我们实现复用的程浅目的呢 ?
Extends是一种继承,定位于组件在某个基础能力上分层进行扩展,用机就像串糖葫芦一样A扩展成B ,端编的复B扩展成C ,程浅比如士兵的用机刀,最基础的端编的复是一把普通刀 ,为了提升战力,程浅可以加上钛合金进行升级;如果还不满足,用机则可以淬上剧毒 ,端编的复这个过程一直是程浅围绕刀这个事物根据不同的需求进行战斗力方面的定向扩展 。
扩展本质上是“是”什么的逻辑 ,比如上例中淬毒刀仍是合金刀 、合金刀依然是刀。实际编程过程中 ,需要进行对组件进行抽象到具体逐级分层 ,单向分层增强能力 ,但本质上不改变基础组件性质的场景 ,可以用Extends 。Extends是纵向化的能力管理方案,讲究的是垂直和深度。
混入可以理解为一种装配,定位于组件因实际需要而混搭多项能力而快速成型。还举士兵的例子 ,混搭就像士兵为了增强防御 ,为自己配备了一个头盔、一副铠甲、一双战靴 ,从而由三个不同的部件完成了一个防御体系的搭建。
混入本质上是“有”什么的逻辑,比如上面的战甲,就有头盔、铠甲 、战靴三个部分。在实际编程过程中 ,需要进行多组件协同,以完成组件的特定业务能力的装配时 ,可以用Mixins 。Mixins是横向化的能力升级方案 ,讲究的是横向覆盖宽度。
个人而言 ,Slot功能是VUE中我最喜欢的功能特性 ,它提供了这样一种能力 :父组件可以以一种摆花瓶的视角看待设置了Slot的子组件,什么意思 ?就是子组件通过设置Slot ,它的结构可以被形象的理解为被分解成两部分:花瓶本身和所插的花 。
从复用的角度看,Slot可以将对花的管理抽象成子组件 ,也就是花瓶 ,而父组件可以把不同的花插入花瓶中把花管理起来 ,这在做内容分发场景中会有极大的便利,内容分发中心可以非常自然的把内容分发具备多个插槽的各子组件中 ,并由子组件完成内容的布局安排等 。
骤然看到事件大家可能觉着和复用没有关系,但是,想想实现复用的最强原则 :高内聚、低耦合 ,你就会发现事件机制是组件实现高内聚、低耦合的不二之选。VUE中有数据在不同层级组件间的传递方式,父传子用属性(Props),子传父用事件(Events) ,兄弟互传用状态仓库或者事件总线(EventBus) 。