204

私たちは、作成中のアプリケーションのフロント エンドを構築するためのオプションを検討しており、私たちにとって機能し、前進するための最適なプラットフォームを提供してくれるツールを評価しようとしています。

これはNode.jsプロジェクトです。当初の計画では、Express を使用してそのルートをたどる予定でしたが、この段階を開始する前に、そこにあるものを確認するのが最善であると判断しました。私たちのアプリケーションには、ビューの観点からではなく、アプリケーションの観点から関連しているという点で、単一ページ モデルに適合しないと思われる領域がいくつかあります。

Backbone.jsMeteorなど、さらに AngularJS など、クライアントを構築するために使用できるいくつかのフレームワークを見てきました。

これはかなり明白な質問かもしれませんが、AngularJS が純粋に単一ページ アプリケーション用であるのか、それとも Express などの複数ページ アプリケーションに使用できるのかを判断することはできないようです。


2013 年 7 月 17 日更新 人々の最新情報を把握するために、プロセスを進めながらこの質問を更新します。今のところすべてを一緒に構築しますが、それがどれだけうまく機能するかを見ていきます。私たちは、私たちよりも AngularJS に精通している何人かの人々に連絡を取り、コンテキストを共有する大規模なアプリケーションを分割することについて質問しましたが、1 つのページで作業するのは大きすぎる可能性があります。

コンセンサスは、複数の静的ページを提供し、それらのページのみで動作する AngularJS アプリケーションを作成して、効果的に SPA のコレクションを作成し、標準のリンクを使用してこれらのアプリケーションをリンクできるということでした。私たちのソリューションにはいくつかのアプリケーションがあるため、私たちのユースケースは非常に具体的です。前述したように、最初に単一のコードベースを試して、そこから最適化します。

UPDATE 2016 年 6 月 18 日プロジェクトは崖っぷちに陥ったため、やりすぎることはありませんでした。最近再び取り上げましたが、Angular を使用しなくなり、代わりに React を使用しています。前回の更新で概説したアーキテクチャを引き続き使用しており、エクスプレス アプリと自己完結型アプリを使用しています。たとえば、/chatReact チャット アプリを提供する Express のルートが/projectsあり、プロジェクト アプリを提供する別のルートがあり、すぐ。各アプリは、その機能セットの観点から集約ルートであり、それ自体がアプリと見なされるためにはスタンドアロンである必要があります。技術的には、すべての情報がそこにあり、基本的な表現であり、使用したいクライアント側のアプリ構築のあらゆるフレーバーです。

4

5 に答える 5

218

全くない。Angular を使用して、さまざまなアプリを構築できます。クライアント側のルーティングはそのほんの一部です。

クライアント側のルーティング以外で役立つ機能の大きなリストがあります。

  • 双方向バインディング
  • テンプレート化
  • 通貨のフォーマット
  • 複数化
  • 再利用可能なコントロール
  • RESTful API の処理
  • AJAX の処理
  • モジュール化
  • 依存性注入

そのすべてが「単一ページのアプリでしか使えない」と考えるのはおかしいです。もちろん違います..それは、「Jquery はアニメーションを使用するプロジェクト専用です」と言っているようなものです。

プロジェクトに適合する場合は、それを使用してください。

于 2013-03-05T18:28:35.983 に答える
3

クライアントのデータ バインディングを含む数ページだけが必要な場合は、Knockout と Javascript Namespacing を使用します。

Knockout は、特に単純な下位互換性が必要で、かなり単純なページがある場合に最適です。サード パーティのコンポーネントを使用している場合、Knockout のカスタム バインディングは簡単で操作が簡単です。

Javascript ネームスペースを使用すると、コードを分離して管理しやすくすることができます。

var myCo = myCo || {};
myCo.page = {
    init: function(){ ... },
    ...
}

そして、他のスクリプトがロードされた後のスクリプトタグで

<script>
    myCo.init();
</script>

重要なのは、必要なときに必要なツールを使用することです。データバインディングが必要ですか? ノックアウト(または好きなもの)。ルーティングが必要ですか? sammy.js (またはお好きなもの)。

クライアント コードは、必要に応じて単純にすることも複雑にすることもできます。既存のプロプライエタリなフレームワークを使用して、Angular を非常に複雑なサイトに統合しようとしましたが、それは悪夢でした。Angular は、新しく始める場合には最適ですが、学習曲線があり、非常にタイトなワークフローに縛られます。これに従わないと、コードがすぐに絡まってしまう可能性があります。

于 2016-09-19T20:26:01.620 に答える