Knockout の機能を拡張する場合、"fn" を使用したカスタム バインディング、エクステンダー、カスタム関数の使用が適切なのはいつですか? どちらかを選択する場合、パフォーマンスへの影響はありますか?
1 に答える
13
通常、実行しようとしている機能にUIとデータの両方が含まれる場合は、カスタムバインディングを選択する必要があります。そのため、要素と、通常は要素の処理を制御するためのデータにアクセスする必要があります。
.fn
この時点で、エクステンダーと追加の間に大きな違いはありません。エクステンダーは、共有機能がを介して利用可能になる少し前にKOに追加されました.fn
。
通常は問題になりませんが、エクステンダーはオブザーバブルと計算されたオブザーバブルの両方で機能します。を使用すると、両方で使用できるようにするため.fn
に関数を追加する必要がありko.subscribable.fn
ます。ただし、場合によっては、機能がどちらか一方にしか適用されないことがあるため、ko.observable.fn
とを使用ko.computed.fn
することをお勧めします。
.fn
拡張が最もクリーンな構文であることがわかりました。必ず返品するthis
場合、またはラッピングする場合は新しいタイプの場合は、チェーンを簡単にサポートできます。エクステンダーはもう少し明確であり、タイプのAPI表面積がリーンのままであることを保証します(それが価値があるもののために)。
于 2012-04-26T13:32:25.813 に答える