om.core/build
とom.next
のファクトリ関数は、コンポーネント関数/クラスを参照するReact要素オブジェクトとthe actual component is only instantiated later by React's reconcilerを返します。つまり、(om.core/build some-component data)
は実際にはsome-component
と呼ばれません。Omの "component"関数を直接呼び出す必要がありますか?
しかし、私たちはしばしば、単純な "ステートレス"コンポーネントを、小道具を取り、React要素を返す単なる関数として表現します。 (純粋な)Reactの世界では、これらの関数の1つを、コンポーネントクラスのように、React.createElement(AStatelessComponent, {some: "props"})
として、またはより便利にはJSXで<AStatelessComponent some="props" />
として使用します。それらもAStatelessComponent
を参照するReact要素を返しますが、実際には後で呼び出されることはありません。
しかしOmでは、このような単純なコンポーネント(私たちは少なくとも私と私のチームを意味します)があれば、関数を直接呼び出します。したがって、ここ
(render [this]
(om/div {}
(a-stateless-component {:some "data"})))
、a-stateless-component
は直ちに呼び出さであり、どのようなことがなく反応させリコンサイラによって後で置換されているよりも、DIV内に直接挿入されて戻ります。
Omでの好ましい方法はありますか?React.createElement
?または、レンダリングツリーでコンポーネントインスタンスを作成することをスキップしたとしても、このような関数を直接呼び出すことをお勧めしますか?