コンポーネント作成時のコードの実行
コンポーネントインスタンスの作成時に constructor() メソッドが起動されます。作成時に属性をホスト要素に追加しないでください。これ以外であれば、どのライフサイクルフックでも属性をホスト要素に追加できます。
コンストラクタは、親から子の順序で実行されます。
constructor() には、「HTML: Custom elements spec (HTML: カスタム要素の仕様)」からの次の要件が適用されます。
- 最初のステートメントは
super()にする必要があります。パラメータは指定しません。このコールにより、thisの正しいプロトタイプチェーンと値が設定されます。必ずsuper()をコールしてからthisを操作してください。 returnステートメントは、単純なアーリーリターン (returnまたはreturn this) でない場合は、コンストラクタの本体内で使用しないでください。document.write()メソッドやdocument.open()メソッドは使用しないでください。- 要素の属性と子は、まだ存在していないため、検査しないでください。
- 要素の公開プロパティは、コンポーネントの作成後に設定されるため、検査しないでください。
属性は、コンポーネントライフサイクルのうち、作成時を除くどのステージでもホスト要素に追加できます。
次の例は、constructor() で属性がホスト要素に追加されるため、問題があります。
次の例は、connectedCallback() で属性がホスト要素に追加されるため、問題ありません。
関連トピック