我对整个javascript全栈应用程序都是新手,对Angular也完全是新手,所以我希望有人能在这里为我澄清这一点.

为什么在使用AngularJS编写客户端应用程序时,我需要使用像Jade或Handlebar这样的模板框架.

我应该说,我也从未使用过这些模板框架.所以我并不完全了解这些优点.但当我以车把为例,它做的很多事情都和我在Angular 上做的一样,比如循环等等.

据我所知,最好使用适当的HTML在Angular中创建模板,然后在客户端执行所有模板设置,并将其与使用node和mongo的API优先方法结合起来.

造成这种困惑的原因是,我在GitHub上找到的许多示例都使用了Jade,这似乎与我的直觉背道而驰.

请开导我,让我明白.我很想从比我了解更多的人那里学习一些最佳实践.

谢谢

推荐答案

那些在Angular 环境中喜欢Jade的人无法理解视图逻辑属于客户端,而业务逻辑属于服务器,正如OP comments 的那样.

Don't do it unless you have a very good reason to do it.在工程中,运动部件较少的系统是一个更可靠的系统,而一个尊重接口边界(客户机/服务器)的系统在长期内更易于维护,因此尽可能采用最简单的体系 struct 和干净的分工.如果你有压倒一切的理由,做你必须做的事,但是caveat emptor.

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

除了模板扩展,Jade没有为表带来Angular尚未提供的任何有价值的东西.老实说:使用"优先组合而非继承"(即partials)的合理原则,你永远不应该拥有need个模板可扩展性.Jade很难比HTML"更容易解析".它们只是trivially种不同,而Jade增加了另一种间接层次——最好避免.

服务器端模板有一个有效的专门 case :优化,记住过早优化通常是一件坏事.当性能确实存在问题时,如果您有足够的服务器容量来处理这个问题,服务器端模板可以提供帮助.这适用于Twitter和Basecamp等产品,在这些产品中,大量服务器端工作的成本被减少服务器请求的yield 所抵消.

至于把手,没有必要取代AngularJS(惊人的)客户端模板.

Node.js相关问答推荐

如何从shell脚本中计算ecmascript模块?

在对象的嵌套数组中使用$lookup,创建多个记录作为响应,mongodb

通过 Node js 中的 TBA 执行 netsuite REST upsert 操作出现 401 错误

从mongodb集合中获取每分钟数据的每小时数据

如何使用 node.js 将两个或多个 API 请求组合成一个端点并表达

使用 fs.createWriteStream 将数据写入 bigquery (node.js) 时出现模式错误

TypeError:在使用 Jest、Supertest、Express、Typescript 进行测试时无法读取未定义的属性(读取listen)

Typescript typeRoots 未检测到类型定义

为什么我的react 表单不能正常工作?

是Electron 的密码和登录凭据的安全存储吗?

Sharp JS 依赖关系 destruct 了 Elastic Beanstalk 上的 Express Server

Node.js 大文件上传到 MongoDB 阻塞了事件循环和工作池

如果 express.js (node.js) http 请求在完成之前关闭会发生什么?

node_modules 中 .bin 文件夹的用途是什么?

Puppeteer 错误:未下载 Chromium 修订版

为什么我们要为 Angular 2.0 安装 Node.js?

Selenium WebDriver 等到元素显示

Heroku + Node:找不到模块错误

在 Node.js 中获取终端的宽度

node.js 异步库