制作元素

1. 工作目标

即扩展html元素,与html无区别, 可查看webcomponent.net。注意,是书写元素类而不是书写元素。

2. 整体过程

新元素创建后自动生成四个部分:html文件:编辑器中元素布局方式;编辑器文件(editor):可以对html文件进行编辑;编译期文件(compiler):把html文件转成运行期html;运行期文件(runtime):针对编译期文件的运行脚本。

3. 实现细节

(1)由于扩展元素的自定义标签不一定被所有浏览器支持, 自定义标签和shadow dom不一定被所有浏览器支持。(可登陆caniuse.com查看标签是否被支持)因此给出一套属性扩展模式。 使用 data-wwclass 作为元素标志。

(2)涉及变量

a. 绑定变量

b. 内部变量,自己在js中自行维护的变量

c. shadow变量,在dom树中由dom自行维护的变量

(3)变量分类

 注意类变量和实例变量的区别。a和c只有实例变量

(4)三类属性 b永远可以更新回任何变量

l data- :绑定变量的变化能更新回shadow变量。 a的变化能更新回c,但是c的变化,更新不回a.

l data-- :双向绑定, a c同步更新。 同时会调用b的事件入口

l data-x- : a c同步更新

4. 与函数api的关系

 data-- 可以看做是函数名称, 参数可以是值,以及其他data-、data-x-属性的集合。 返回值通过异步方式返回。 用事件或data-x-存储返回值。 不推荐函数api命名模式, 推荐以数据为中心的命名模式。

5. 上传处理
6. 辅助函数