1010
1111(2)使用非常容易。加载或卸载组件,只要添加或删除一行代码就可以了。
1212
13- ``` html
14- <link rel =" import" href =" my-dialog.htm" >
15- <my-dialog heading =" A Dialog" >Lorem ipsum</my-dialog >
16- ```
17-
18- 上面代码中,第一行加载了一个对话框组件,第二行在网页上放置这个组件的实例。
19-
2013(3)开发和定制很方便。组件开发不需要使用框架,只要用原生的语法就可以了。开发好的组件往往留出接口,供使用者设置常见属性,比如上面代码的` heading ` 属性,就是用来设置对话框的标题。
2114
2215(4)组件提供了 HTML、CSS、JavaScript 封装的方法,实现了与同一页面上其他代码的隔离。
@@ -34,7 +27,9 @@ Web Components 不是单一的规范,而是一系列的技术组成,以下
3427
3528## Custom Element
3629
37- HTML 预定义的网页元素,有时并不符合我们的需要,这时可以自定义网页元素,这就叫做 Custom Element。简单说,它就是用户自定义的网页元素,是 Web components 技术的核心。
30+ ### 简介
31+
32+ HTML 标准定义的网页元素,有时并不符合我们的需要,这时浏览器允许用户自定义网页元素,这就叫做 Custom Element。简单说,它就是用户自定义的网页元素,是 Web components 技术的核心。
3833
3934举例来说,你可以自定义一个叫做` <super-button> ` 的网页元素。
4035
@@ -58,7 +53,34 @@ window.customElements.define('my-element', MyElement);
5853
5954登记以后,页面上的每一个` <my-element> ` 元素都是一个` MyElement ` 类的实例。只要浏览器解析到` <my-element> ` 元素,就会运行` MyElement ` 的构造函数。
6055
61- 自定义元素的类(` MyElement ` )有一些自定义的生命周期方法。
56+ ` window.customElements.define() ` 方法定义了 Custom Element 以后,可以使用` window.customeElements.get() ` 方法获取该元素的构造方法。
57+
58+ ``` javascript
59+ const el = window .customElements .get (' my-element' );
60+
61+ // same as myElement = document.createElement('my-element');
62+ const myElement = new el ();
63+
64+ document .body .appendChild (myElement);
65+ ```
66+
67+ ### 生命周期方法
68+
69+ Custom Element 有一些生命周期方法。
70+
71+ ``` javascript
72+ class MyElement extends HTMLElement {
73+ constructor () {
74+ super ();
75+ }
76+
77+ connectedCallback () {
78+ // here the element has been inserted into the DOM
79+ }
80+ }
81+ ```
82+
83+ 上面代码中,` connectedCallback() ` 方法就是` MyElement ` 元素的生命周期方法。每次,该元素插入 DOM,就会自动执行该方法。
6284
6385- ` connectedCallback() ` :自定义元素添加到页面(进入 DOM 树)时调用。这可能不止一次发生,比如元素被移除后又重新添加。类的设置应该尽量放到这个方法里面执行,因为这时各种属性和子元素都可用。
6486- ` disconnectedCallback() ` :自定义元素移出 DOM 时执行。
0 commit comments