1. ホーム
  2. javascript

[解決済み】AngularJSはシングルページアプリケーション(SPA)のためだけのものですか?)

2022-04-14 18:46:43

質問

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

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

クライアントを構築するために使用できるフレームワークをいくつか見てきました。 バックボーン(Backbone.js) , メテオ など、また、AngularJSも。

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


2013年7月17日 UPDATE この質問については、順次更新していく予定です。今のところ、すべてを一緒に構築するつもりで、それがどの程度うまくいくかを見るつもりです。私たちよりもAngularJSに詳しい人たちに連絡を取り、コンテキストを共有する大きなアプリケーションを分割することについての質問を投げかけましたが、1つのページで作業するには大きすぎるようです。

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

UPDATE 2016年6月18日 このプロジェクトは崖っぷちに立たされたので、あまり多くのことを成し遂げることができませんでした。 最近また再開しましたが、もうangularは使わず、代わりにReactを使っています。 前回の更新で説明したアーキテクチャはまだ使用しており、エクスプレスとセルフコンテインドアプリを使用しています。 /chat のルートはReactのチャットアプリを提供し、別のルートは /projects のように、プロジェクトアプリを提供します。私たちが考えているのは、各アプリは機能セットの点で集合的なルートであり、それ自体がアプリとみなされるためには、スタンドアロンである必要があるということです。 技術的には、すべての情報はそこにあり、基本的なエクスプレスとクライアントサイドのアプリ構築の良さを使いたいだけです。

解決するには?

そんなことはありません。Angularを使えば、様々なアプリを作ることができます。クライアントサイドのルーティングは、その中のほんの一部に過ぎません。

クライアントサイド・ルーティング以外でも、メリットのある機能がたくさんありますね。

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

そのすべてがシングルページのアプリにしか使えないと考えるのは、おかしな話です。 Jqueryはアニメーションのあるプロジェクトにしか使えない」と言っているようなものです。

プロジェクトに合っていれば、それを使えばいい。