用ESNext编写的Angular^2.0.0版本
在之前的工作中,我使用TypeScript写Angular^2.0.0,但在现在的工作中,我使用ESNext写React。
由于Angular采用了semver,我个人一直在关注更新情况。但由于现在的工作使用ESNext,我将介绍一些在ESNext中使用Angular的方法以及需要注意的地方。(基本上,通过阅读官方文档的ts-to-js部分可以了解如何进行转换)
参考的存储库
– angular2-babel-esnext-starter
– angular2-esnext-todomvc
– babel-preset-angular2
参考资料库
– angular2-babel-esnext-starter
– angular2-esnext-todomvc
– babel-preset-angular2
前提
我们将使用webpack和babel。将template和styles文件分开。
巴别塔的注意事项
如果您使用babel-preset-latest,除了decorator之外,您可以以与TypeScript相同的语法进行编写(decorator不包含在latest中)。
现在,decorator是一件麻烦的事情。在ecmafuture中,decorator仍然不稳定,规范也没有被确定下来,也就是说目前没有确定的转译方法,所以如果您想要使用它,需要做好相应的准备。
如果您想要使用,可以使用babel-plugin-transform-decorators-legacy或者babel-preset-angular2会更方便。特别是babel-preset-angular2还扩展了transform-decorators-legacy,使其更接近TypeScript的语法,但如果您要在工作中使用的话,可能最好先阅读代码。
styles的注意事项
使用to-string-loader,你可以相对轻松地进行实现,几乎不需要考虑其他方面。然而,如果使用raw-loader,则无法正常运行(我已经放弃了)。
简化template和styles的指定
由于使用了webpack和babel,所以通常使用ES模块的形式来导入内容,但是如果使用angular2-template-loader,可以通过templateUrl和styleUrls来指定内容。
用ESNext来编写的好处
尽管使用Webpack时我们可以猜测比使用TypeScript编写的速度更快,但这只是唯一的优点。
说实话,由于laco先生已经创建了light-ts-loader,这使得我对它只剩下一点兴趣而已…。
顺便说一下
我创建了一个存储库来考虑是否可以将Flux仅应用于Angular的设计模式,并进行了尝试(但是Flux的重要部分仍然无影无形)。
https://github.com/asukaleido/angular-flux-example
当前的TypeScript可以忽略类型,所以尽管我努力了,但内容仍然无法使用。然而,换个角度说,ESNext和TypeScript确实非常相似,几乎可以用与TypeScript相同的方式来编写代码,这让我深深地感受到它们的相似之处。