Knockout SPA をリファクタリングしています。改善の 1 つは、コンポーネントを可能な限り汎用的にすることです。たとえば、<elements-widget>
要素のリストをレンダリングする「ポリモーフィック」/ジェネリックが必要です。リストのタイプによって、タイプの子コンポーネントが異なる場合があります。
現在のアプリのサンプル:
「人物ページ」があります。
<persons-page>
<persons-widget> <persons-widget>
</persons-page>
「人ウィジェット」:
<div class="grid" data-bind="foreach: elements">
<person-widget params="element:$rawData"></persons-widget>
</div>
代わりに、「個人ページ」で汎用コンポーネントを使用したいと考えています。
<elements-widget params="elements:elements, elemComponent:'person-widget'">
</elements-widget>
汎用コンポーネントのテンプレートは次のようになります。
<div class="grid" data-bind="foreach: elements">
<elemComponent> params="element:$rawData"></elemComponent>
</div>
elemComponentは、 elements-widgetに渡されるパラメータです。
どうもありがとう