/
0.txt
66 lines (51 loc) · 3.42 KB
/
0.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
* 仕様書
[REFS[
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#concept-custom-element-definition-lifecycle-callbacks>
- [5] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#callback-reaction>
]REFS]
* [F[生活環コールバック群]] (カスタム要素定義)
[2] [[カスタム要素定義]]は、[DFN[[F[[RUBYB[[[生活環コールバック群]]]@en[lifecycle callbacks]]]]]]を持ちます
[SRC[>>1]]。
[3] これは、[[写像]]です。次の3つの[[キー]]を持ちます [SRC[>>3]]。
[FIG(short list)[
- [CODE[connectedCallback]]
- [CODE[disconnectedCallback]]
- [CODE[attributeChangedCallback]]
]FIG]
[4] 各[[キー]]に対応する値は、
[[JavaScript]] の[[関数]]か、[[未定義]]のいずれかです。
既定値は、[[未定義]]です。 [SRC[>>3]]
[7] これらの値は、 [CODE(DOMm)@en[define]] [[メソッド]]で[[カスタム要素定義]]を作成する時に、
[[カスタム要素構築器]]の [CODE(JS)@en[prototype]] から設定されます。
* コールバック反応
[18] [DFN[[RUBYB[コールバック反応]@en[callback reaction]]]]は、
[[生活環コールバック]]を実行するもので、
[[コールバック関数]]と[[引数リスト]]を持ちます。 [SRC[>>5]]
[6] [[コールバック反応]]は、[[カスタム要素反応キュー]]で使われます。
[8] [DFN[[RUBYB[カスタム要素コールバック反応をキューに追加]@en[enqueue a custom element callback reaction]]]]する操作は、
[[カスタム要素]][VAR[要素]]、
[VAR[コールバック名]]、[VAR[引数リスト]]について、次のようにします [SRC[>>5]]。
[FIG(steps)[
= [9] [VAR[文書]]を、[VAR[要素]]の[F[節点文書]]に設定します。
= [10] [VAR[文書]]の[F[閲覧文脈]]がなければ、
== [11] ここで停止します。
= [12] [VAR[登録簿]]を、[VAR[文書]]の[F[[CODE(DOMi)@en[Window]]]] の
[F[[CODE(DOMi)@en[CustomElementsRegistry]]]] に設定します。
= [13] [VAR[定義]]を、[VAR[登録簿]]で[F[名前][定義名]]が[VAR[要素]]の[F[局所名]]の項目に設定します。
= [14] [VAR[コールバック]]を、[VAR[定義]]の[F[生活環コールバック群]]の[F[キー]]が[VAR[コールバック名]]の項目の[F[値]]に設定します。
= [15] [VAR[コールバック]]が[[未定義]]なら、
== [16] ここで停止します。
= [17] [VAR[コールバック名]]が [CODE[attributeChangedCallback]] なら、
== [19] [VAR[属性名]]を、[VAR[引数リスト]]の最初の項目に設定します。
== [20] [VAR[定義]]の[F[被観察属性群]]に[VAR[属性名]]が含まれないなら、
=== [21] ここで停止します。
= [22] [VAR[要素]]の[F[カスタム要素反応キュー]]に、
[VAR[コールバック]]と[VAR[引数リスト]]の組である[[コールバック反応]]を追加します。
= [23] [VAR[要素]]について[[適切な要素キューに要素を追加]]します。
]FIG]
;; [25] [[要素の格上げ]]や[[挿入]]や[[削除]]で呼び出されます。
[24] 実行については、[[カスタム要素反応キュー]]参照。
* 歴史
[26] [CITE@en[Take care of missing custom element reactions]]
([[domenic]]著, [TIME[2016-06-30 03:04:46 +09:00]])
<https://github.com/whatwg/html/commit/a57c88711c995356e44d019f5bd81d0cdedac2bf>