m.mount
マウントは、コンポーネントをDOMエレメントにレンダリングするプロセスです。
m.mount
とm.render
の違いは、m.mount
の場合は自動再描画システムがイベントハンドラから起動されるが、m.render
は起動しない点です。
もし、複数のページ間でユーザをナビゲーションをして、その時にコンポーネントのロード/リロードを行いたい場合は、m.route
を代わりに使用してください。
コンポーネントのレンダリング
使用方法
m.mount
を呼ぶ時は、DOMエレメントを最初の引数に設定し、2つ目の引数にコンポーネントを設定します。まずコンポーネントのcontroller関数が呼ばれ、次にview関数が呼ばれます。controller関数の返り値は、view関数の最初の引数として渡されます。
var MyComponent = {
controller: function() {
return {greeting: "Hello"}
},
view: function(ctrl) {
return m("h1", ctrl.greeting)
}
}
m.mount(document.body, MyComponent)
//<body><h1>Hello</h1></body>
より詳細な情報はm.component
を参照してください。
シグニチャ
Object mount(DOMElement rootElement, Component component)
where:
Component :: Object { Controller, View }
Controller :: SimpleController | UnloadableController
SimpleController :: void controller([Object attributes [, any... args]])
UnloadableController :: void controller([Object attributes [, any... args]]) { prototype: void unload(UnloadEvent e) }
UnloadEvent :: Object {void preventDefault()}
View :: void view(Object controllerInstance [, Object attributes [, any... args]])
DOMElement rootElement
ビューのテンプレートの結果が作成されるDOMエレメント。
Component component
コンポーネントは、
controller
とview
のキーを持つオブジェクトです。このどちらの属性も、JavaScriptの関数でなければなりません。もしコントローラが省略されると、Mithrilは自動的に空のコントローラ関数を補完します。m.mount
が呼ばれると、controller関数が実行されて、それがm.mount
の返り値になります。コントローラコードの実行が完了すると(AJAXのリクエストの完了待ちも含む)ビュークラスのインスタンスが作られ、ビューのコンストラクタにコントローラのインスタンスが渡されます。
returns Object controllerInstance
コントローラコンストラクタのインスタンス。