BaseComponent というのもあるが、こちらは UI の構成要素のベースクラスで、Component とは無関係なので注意されたい。
いろんなものが Component のサブクラスである。
Component の間には、 addChild メソッドを使って親子関係を定義できる。子 Component は、親 Component が unload されると自動で自分も unload される。これを使って、たとえばあるプラグインを構成する各要素を分割して Component クラスのサブクラスとして定義し、それらを addChild するという方法がとれる。たとえば Dataview や Datacore はそうしている。
#unexposed Component オブジェクトは以下の 3 つのプロパティをもつ。
_loaded: booleanComponent が load されている(オンになっている)か否か_events: (() => any)[]Component が unload される(オフになる)ときに実行されるお片付けコールバック関数たち。register メソッドで登録する。register... メソッドたちも、register メソッド経由で _events にコールバックを登録している。_children: Component[]Component の子 Component たちload() メソッドを直接実行するか、ほかの Component に addChild することで(親 Component がすでに load されていれば即座に、そうでなければ親が load されるタイミングで)Component を load できる(" オン " の状態にできる)。
load 時についでに実行するべき処理は onload() メソッドをオーバーライドして記述する。デフォルトではなにもしない。典型的には registerEvent とかをここに書く。
Component の unload() メソッドを呼んだのに onunload() の内容が実行されない...というときは、そもそもその Component を load し忘れている可能性が高い。