2

angularJS アプリケーションを作成するとき、ほとんどすべての「コンポーネント」をディレクティブに作成するのがベスト プラクティスですか? コンポーネントと言うときは、機能を実行する HTML 要素のグループを意味します。例:

ログイン:

 - <input type="text" name="username" />
 - <input type="password" name="password" />
 - <button>Login</button>

イベント:

 - <h3>Title</h3>
 - <input type="date" name="eventStart" />
 - <p>This is an event description</p>

ブログ投稿:

 - <h3>Title</h3>
 - <small>Blog meta - Blog Author</small>
 - <p>This is a post blah blah blah</p>
4

2 に答える 2

1

ディレクティブを使用すると、コードを再利用できます。私は確かに、再利用されるすべてのものをディレクティブに入れます。繰り返しを避けるために、ディレクティブを使用する必要があります。たとえ同じことを繰り返していなくても、つまり、コードが 1 か所にしかない場合でも、それをディレクティブにする必要があるとさえ言えます。

1 か所でのみ使用されるディレクティブはコードを削減しませんが、懸念事項を分離します。ディレクティブはクラスに似ていると思います。コードの巨大なブロックの代わりに、クラス スコープは、クラスがスタンドアロン ブロックであることを強制します。同様に、独自のスコープを持つディレクティブを作成すると、制限された方法で周囲と相互作用するスタンドアロン ブロックになります。

ngInclude は少し異なります。私はこれを eval や C の #include に相当するものと考えています。多少の分離はありますが、すべてが同じスコープを共有しており、絡み合っている部分が簡単にできますが、検査しない限りそうは見えません。

YAGNIに関しては、これは別の問題だと思います。YAGNI は機能の追加について話しています。何かを追加することよりも、コード構造について話しているのです。同じコードが表示されますが、編成が少し異なります。確かに、ディレクティブを記述するには少し手間がかかりますが、クラスと同様に、軽量で簡単に作成することもできます (必要な思考量の点で)。

于 2013-07-20T21:31:14.843 に答える