1. ホーム
  2. node.js

[解決済み] AngularJsのアプリを書くときにJadeやHandlebarsを使うのはどうなのか?

2022-08-23 04:40:42

質問

私は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の(素晴らしい)クライアントサイドテンプレートを置き換える必要はありません。