【教学向】再加150行代码教你实现一个低配版的web component库(3) —代码篇

书接上文
【教学向】再加150行代码教你实现一个低配版的web component库(2) —原理篇

虽然低配版的web component篇较之前的mvvm篇没有什么人气,有点曲高和寡的赶脚,但是教程还是要继续出完的,给自己一个交代。

还是再先上一遍设计图和组件定义格式

component定义格式



    
    
    

设计图

【教学向】再加150行代码教你实现一个低配版的web component库(3) —代码篇_第1张图片

还是先搭骨架,再填血肉

这次增加web component功能,只是在原来mvvm的基础上新增了3个类,分别是LoaderComponentGenerator,和一个描述component定义的类型ComponentDefinition

我们看到设计图中的入口是register component,我们需要给SegmentFault类增加个registerComponent的接口

SegmentFault

export let SegmentFault = class SegmentFault {
    ...
    private componentPool = {};
    //传入自定义component的tagName,tagName可以随便起,例如my-comp
    //path为定义文件的路径,例如components/myComp.html
    public registerComponent(tagName,path){
        this.componentPool[tagName] = path;
    }
    ...
}

ComponentDefinition

ComponentDefinitiony用来维护component的定义文件,我们需要把每个xxxComp.html定义文件中的