3

いかなる種類のテンプレートシステムにも依存しないバックボーンビューを持つことは悪い習慣ですか?

もちろん、これは、ビュー内でハードコードされた文字列を使用して、あらゆる種類のDOMコードが手動で生成されることを意味するものではありません。ダメダメダメ。もちろん、各ビューの基本レイアウトをDOM要素にキャッシュし、display:noneに設定することもできます。ただし、テンプレート自体の値の設定を減らしたいと思います。私はむしろ、jquery、またはビュー自体の中で他の種類のDOM修飾子フォームを使用してそれを行いたいと思います。このようにして、Mustache、Handelbars、Underscoreテンプレートシステムなどを使用して、アプリと自分自身をさらした絶え間ない不一致と数え切れないほどの労力を節約できます。すべてのビューロジックを1つの場所に配置すると、すべてがはるかにクリーンになります。少なくとも私の見解では。適切な部分レンダリング、値のバインドなど、多くの利点があります。

私が目にする唯一の問題は、jQueryで行う定数チェックが十分に高速に実行されるかどうかですが、最終的にはそのような問題にはならないはずです。

どう思いますか?良い?悪い?実用的?

4

2 に答える 2

1

テンプレートエンジンを使用しないIMHOは、それ自体、悪い設計上の決定ではありません。

テンプレートエンジンは、よりクリーンで保守しやすいコードを生成することを目的としています。テンプレートエンジンを使用しないと、よりクリーンで保守しやすいコードが生成され、テンプレートエンジンなしで実行できます。

私の意見では、テンプレートエンジンを使用する方が良いと思いますが、これは好みの問題です。また、部分的な更新のために、テンプレートを手動のDOM変更と組み合わせます。this.$el.find(".my-element").html( "new value" );

于 2012-08-04T12:30:07.693 に答える
0

テンプレートは良いです。コーディングにかかる​​時間を大幅に節約し、要素をループして、ごくわずかなコードで複数の要素を作成できます。

とはいえ、レンダリングの呼び出しが多すぎたり、DOM要素/テンプレートを破棄して再作成したりすると、パフォーマンスに多大なコストがかかります。

私はバックボーン用のPerfViewを持っており、クロームで120FPSのスクロールビューに1,000,000モデルを表示できます。秘訣は、必要なすべての可能なノードを使用してテンプレートを1回だけレンダリングし、モデルが変更されたときにDOMのコンテンツを変更することです。また、DOM要素にオブジェクトプールを使用すると、それらを再利用できます。テンプレートを使いすぎないように要素を半自動で更新する方法については、237行目のmodelMapプロパティ(https://github.com/puppybits/BackboneJS-PerfView/blob/master/index.html )を確認してください。

于 2013-10-22T04:43:28.897 に答える