[解決済み】AngularJSはシングルページアプリケーション(SPA)のためだけのものですか?)
質問
私たちは、作成中のアプリケーションのフロントエンドを構築するためのオプションを検討しており、私たちのために動作し、前進するための最良のプラットフォームを提供するツールを評価しようとしています。
これは 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はアニメーションのあるプロジェクトにしか使えない」と言っているようなものです。
プロジェクトに合っていれば、それを使えばいい。
関連
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] angular-routeとangular-ui-routerの違いは何ですか?
-
[解決済み] Node.js + Nginx - 今度は何?
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] 検索エンジンはAngularJSアプリケーションをどのように扱っているのか?
-
[解決済み] Reactのstateとpropsの違いとは?
-
[解決済み] 部分テンプレートとテンプレートの複雑なネスト
-
[解決済み】AngularJSでアンカーハッシュのリンクを処理する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
vueはopenlayersを使用してスカイマップとガオードマップをロードする
-
vueの補間表現とv-textディレクティブの違いについて
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。