我是整个javascript全栈应用程序的新手,并且对Angular还是陌生的,所以我希望有人可以在这里为我提供记录。

为什么在使用AngularJS编写客户端应用程序时需要使用Jade或Handlebars之类的模板框架。

我应该说,我也从未使用过任何这些模板框架。因此,我完全不了解这些优势。但是,例如,当我看一下Handlebars时,它会执行许多与我在Angular中所做的相同的事情,例如循环等。

据我所知,最有意义的是使用适当的HTML在Angular中创建模板,然后对客户端进行所有模板处理,并将其与使用node和mongo的API first方法结合起来。

造成这种困惑的原因是,我在GitHub上找到的许多示例都使用了Jade,这对我来说似乎很不直观。

请开导我,让我挺直。我很乐意向比我了解更多的人学习一些最佳实践。

谢谢

最佳答案

那些毫无疑问地在Angular环境中偏爱Jade的人无法理解 View 逻辑属于客户端,而业务逻辑属于服务器,正如OP所评论的那样。

除非您有充分的理由这样做,否则请不要这样做。在工程中,具有较少运动部件的系统是更可靠的系统,并且从长远来看,更易于维护尊重接口(interface)边界(客户端/服务器)的系统,因此,如果可能的话,默认使用最简单的体系结构和明确的分工。如果您有压倒一切的原因,请做您必须做的,但要告诫自己。

最近,我回顾了一些代码,仅通过保持简单性,直接进行Angular模板比在Jade中进行混合要好得多。

除了模板扩展之外,Jade并没有为Angular尚未提供的表带来任何有值(value)的东西。坦白说:使用“偏向于继承而不是继承”的合理原则(即部分性),您永远都不需要模板可扩展性。 Jade比HTML几乎“更容易解析”。它们只是微不足道的不同,而Jade则增加了另一个间接级别-最好避免。

对于服务器端模板,有一个有效的专业案例:优化,请记住,过早的优化通常是一件坏事。在性能确实存在问题的地方,并且您有足够的服务器能力来处理此问题,服务器端模板可以提供帮助。这适用于Twitter和Basecamp之类的产品,其中减少了对服务器的请求,从而抵消了执行大量服务器端工作的成本。

至于 Handlebars ,不需要替换AngularJS的(惊人的)客户端模板。

09-20 21:19