Angular 2和Dart之间的区别是什么?
我读过你可以和dart一起使用AngularJS。那是什么意思?他们都是JavaScript的替代品吗?
答案 0 :(得分:15)
更新(2018/01)
虽然模板语法仍然十分相似,但其他一些事项,如配置DI和注册组件以及生命周期回调,在Angular的Dart和TS风格之间的差异越来越大,因为这两个版本在2016年5月被拆分为独立开发
<强>原始强>
TypeScript是JavaScript的超集,它只允许以更“理智”的方式使用JS。
Dart凭借自己的语言语义远离JavaScript。 Dart可以翻译成JS。
哪种支持的语言适合您,主要取决于您的要求或个人偏好(或您的管理人员)。
[prop]="value"`
[attr.attrName]="value"
prop="{{value}}"`
attr.attrName="{{value}}"
(event)="..."
<div *ngFor="...">
我想到的一个区别是TS / JS版本获得了Dart中尚未提供的<ng-container>
。
@ContentChildren()
表现得有点不同。
[ngClass]="{cName: value}
如果cName
不是当前作用域中的已知标识符,将导致Dart中的错误,而在JS / TS cName
中只会按字面意思使用。
[attr.someAttr]="someProp ?? true" // Dart only
Angular2 Dart没有NgModule
,主要是为了延迟加载路由器而引入的。 Dart拥有自己的延迟加载故事,不需要NgModule
TS / JS支持不同的平台,如服务器端渲染,WebWorker。 Angular2 Dart目前不提供这些
正在进行的工作是让Darts自己的HTML抽象dart:html
与服务器端代码兼容,这可能允许服务器端渲染。 WebWorkers最终可能也会以不同于TS / JS的方式提供支持。
对于Dart,没有动态平台。在JS / TS中,它支持在运行时编译组件。这在Dart中不受支持,它可能永远不会。
Dart似乎在AoT方面做得更好,因为输出大小和性能会出现树木抖动(不完全确定 - 需要基准测试)
Dart拥有自己的构建故事,这部分与JS / TS完全不同。
Darts DOM抽象层dart:html
包含很多抽象,适用于JS / TS需要填充的不同浏览器。
答案 1 :(得分:3)
Angular不是JavaScript替代品,它是用于构建Web应用程序的框架。 Angular有3种语言风格,适用于JavaScript,Typescript和Dart。
Typescript和Dart都可以被描述为JavaScript&#39;替换&#39;,因为可以用它们编程而不是JavaScript来构建Web应用程序。
Dart也可以用于非Web应用程序编程,可以使用Java,Ruby或Python。
还有一个正在开发的Dart移动应用程序框架。