Skip to content
Army edited this page Feb 16, 2017 · 7 revisions

migi

  • render(element:Element, dom:DOM/String):Element 渲染element到指定dom中作为innerHTML,会调用element的toString方法
  • createCp(name:String, props:Object, children:Array<VirtualDom/*>):Component 创建指定name名称和props属性的组件,孩子列表children
  • createVd(name:String, props:Object, children:Array<VirtualDom/*>):VirtualDom 创建指定name名称和props属性的虚拟DOM,孩子列表children
  • Event:class Event类
  • EventBus:class EventBus类
  • eventBus:EventBus 默认的全局事件总线
  • Element:class Element类,Component组件和VirtualDom虚拟DOM抽象父类
  • Component:class Component类
  • NonVisualComponent:class NonVisualComponent类,父类为Component
  • CacheComponent:class CacheComponent,父类为Component
  • VirtualDom:class VirtualDom虚拟DOM类
  • Obj:class get/set数据变动侦听类
  • Cb:class VirtualDom点击侦听类
  • util:Object 内置工具集
  • sort:Function(arr:Array<*>, cb:Function=null):Array 内置的快速排序

Event

  • on(id:String/Array<String>, handle:Function):Event 添加侦听
  • off(id:String/Array<String>, handle:Function):Event 删除侦听
  • once(id:String/Array<String>, handle:Function):Event 添加侦听,且只执行一次
  • emit(id:String/Array<String>, ...data:Object):Event 触发事件,参数变长
Event static
  • mix(...obj:Object):void 将Event的方法混入到指定obj上
  • DOM:String='DOM' 标明DOM事件,当vd和cp被添加到dom时触发
  • DESTROY:String='DESTROY' 标明DESTROY事件,当vd和cp被回收时触发
  • DATA:String='DATA' 标明DATA事件,当cp发生数据变更时触发

EventBus -> Event

  • $bridge(target:Component, datas:Object<key:String, value:String/Function/Object>) 单向数据流动至target组件,datas为键值对,key表明联动数据名,value有3种形式
  • 当value为String时,标明流动对象的数据名
  • 当value为Function时,流动对象的数据名为同名key,其唯一参数为变量值,返回处理后的数据值
  • 当value为Object时,name标明流动对象的数据名,middleware为中间件处理数据方法,同上Function
  • $bridgeTo(target:Component, datas:Object<key:String, value:String/Function/Object>) 同$bridge,但是调用target的$bridge方法桥接自己

Element -> Event

Element及其子类均和DOM相关,由于需要被开发者继承的关系,除了特殊的render和toString方法,其它所有public方法均已$开头

  • get name:String 获取名字,组件为constructor名,vd为tagName
  • get props:Object<key:String, value:*> 获取属性
  • get children:Array<*> 获取孩子节点们
  • get parent:Element 获取父亲节点
  • get uid:int 获取唯一id
  • get element:HtmlElement 获取真实DOM节点
  • get dom:Boolean 获取是否被添加到DOM上
  • get element:HtmlElement 获取真实DOM引用
  • get parent:Element 获取父级对象,可能为空
  • get top:Component 获取顶级组件对象,可能为空
  • inTo(dom:HtmlElement/String):void 作为innerHTML插入到dom里
  • appendTo(dom:HtmlElement/String):void 附加到dom孩子最后
  • prependTo(dom:HtmlElement/String):void 附加到dom孩子最前
  • before(dom:HtmlElement/String):void 插入到dom之后
  • after(dom:HtmlElement/String):void 插入到dom之前
  • replace(dom:HtmlElement/String):void 替换掉dom
拥有的事件
  • Event.DOM(fake:Boolean=undefined) 被添加到真实DOM时触发
  • fake为true时发生在如此环境:父组件有render方法,此时父组件处罚DOM事件,本身虽然未被添加到DOM中但初始化完成,以fake表面这是个假的DOM事件

VirtualDom -> Element

  • get style:Object 获取样式
  • set style:Object 设置样式
  • isFirst():Boolean 是否是第一个孩子
  • isLast():Boolean 是否是最后一个孩子
  • find(name:String/class):* 寻找首个名字或class为name的对象,不递归组件
  • findAll(name:String/class):Array<*> 寻找所有名字或class为name的对象,不递归组件

Component -> Element

  • get virtualDom:VirtualDom 获取组件的唯一VirtualDom实例
  • render():String 需被覆盖,否则将返回一个默认的div节点,渲染children列表
  • find(name:String/class):* 寻找首个名字或class为name的对象,不递归组件
  • findAll(name:String/class):Array<*> 寻找所有名字或class为name的对象,不递归组件
  • findChild(name:String/class):* 在$children列表中寻找首个名字或class为name的对象,不递归组件
  • findChildren(name:String/class):Array<*> 在$children列表中寻找所有名字或class为name的对象,不递归组件
  • bridge(target:Component/EventBus, datas:Object<key:String, value:String/Function/Object>) 单向数据流动至target,datas为键值对,key表明联动数据名,value有3种形式
  • 当value为String时,标明流动对象的数据名
  • 当value为Function时,流动对象的数据名为同名key,其唯一参数为变量值,返回处理后的数据值
  • 当value为Object时,name标明流动对象的数据名,middleware为中间件处理数据方法,同上Function
  • bridgeTo(target:Component/EventBus, datas:Object<key:String, value:String/Function/Object>) 同$bridge,但是调用target的$bridge方法桥接自己
拥有的事件
  • Event.DATA(key:String, origin:Function) set数据发生变更时触发,两个参数为数据名和触发的对象引用

CacheComponent -> Component

拥有的事件
  • Event.CACHE_DATA(key:String, origin:Function) set数据缓存一定时间后发生变更时触发,参数为数据名和触发的对象引用

util

  • clone(obj:*):Object 深度clone对象,但忽略Element类型
  • isObject(obj:*):Boolean 是否是Object类型
  • isString(obj:*):Boolean 是否是String类型
  • isFunction(obj:*):Boolean 是否是String类型
  • isNumber(obj:*):Boolean 是否是String类型
  • isBoolean(obj:*):Boolean 是否是Boolean类型
  • isDate(obj:*):Boolean 是否是Date类型
  • equal(a:, b:):boolean 是否全相等,引用类型除了Element类型对比引用外深度对比
  • encodeHtml(s:String, prop:Boolean=false):String html转义,prop为true时为属性只转义双引号
  • joinArray(arr:Array<*>):String 将多维数组拼接成字符串