[解決済み] AngularJsのアプリを書くときにJadeやHandlebarsを使うのはどうなのか?
質問
私はjavascriptのフルスタックアプリケーションの初心者で、Angularは全くの初心者です。
AngularJSを使用してクライアント側アプリケーションを書くときに、なぜJadeやHandlebarsのようなテンプレートフレームワークを使用する必要があるのでしょうか。
私もこれらのテンプレートフレームワークを使用したことがないと言っておく必要があります。ですから、私はその利点を完全に知っているわけではありません。しかし、たとえばHandlebarsを見ると、ループ処理など、私がAngularで行うのと同じことを多く行っています。
私が知る限り、適切なHTMLを使用してAngularでテンプレートを作成し、すべてのテンプレート作成をクライアント側で行い、これを例えばnodeとmongoを使用したAPIファーストのアプローチと組み合わせることが最も理にかなっていると思われます。
この混乱の理由は、私がGitHubで見つけた例の多くがJadeを使用しており、それが私にとって直感的でないように思えるからです。
私を啓発し、正してください。私よりもずっと多くのことを知っている人たちから、いくつかのベストプラクティスを学びたいと思います。
ありがとうございます。
どのように解決するのですか?
このような方は 疑うことなく を支持する人たちは、OPがコメントしたように、ビューロジックはクライアントに、ビジネスロジックはサーバーに属するということを理解していないのです。
それを行うための非常に良い理由がない限り、それを行うことはありません。
エンジニアリングでは、可動部品の少ないシステムはより信頼できるシステムであり、インターフェースの境界 (クライアント/サーバー) が尊重されているシステムは長期にわたってより保守しやすいものです。したがって、可能であれば最もシンプルなアーキテクチャときれいな分業制を採用しましょう。もし優先すべき理由があるのなら、必要なことをやってください。 注意 .最近、私はいくつかのコードを見直しましたが、単純さを維持することで、AngularのテンプレートはJadeを混ぜるよりもはるかに良い仕事をしたでしょう。
テンプレート拡張を除けば、JadeはAngularがすでに供給していない価値のあるものを何ももたらしません。正直に言うと、継承よりも構成を優先するという健全な原則(つまり、パーシャル)を使って、あなたは決して は必要ありません。 テンプレート拡張性を必要としないはずです。JadeはHTMLよりもパースしやすいとは言い難いです。それらは、しかし 些細なことですが しかし、Jadeは別のレベルのインダイレクトを追加しており、これは避けるのがベストです。
サーバーサイドテンプレートのための有効で特別なケースが1つあります。最適化ですが、時期尚早の最適化は一般に悪いことであることを覚えておいてください。パフォーマンスが本当に問題である場合。 と を処理するためのサーバー容量に余裕がある場合、サーバーサイドのテンプレートが役に立ちます。これは、Twitter や Basecamp などの製品に当てはまり、多くのサーバー サイドの作業を行うコストは、サーバーへのリクエストの減少による利益によって相殺されます。
Handlebarsに関しては、AngularJSの(素晴らしい)クライアントサイドテンプレートを置き換える必要はありません。
関連
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] 認証とセッション管理に関するSPAのベストプラクティス
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] node.jsのセットアップウィザードが途中で終了してしまう
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。