http://blog.angularjs.org/2014/04/angular-and-durandal-converge.html
对于一个新的mini-SPA项目,哪个框架是升级路径的最佳选择?
我注意到Rob Eisenberg已经列出了一些技巧来帮助现有的DurandalJS用户为下一个版本做好准备,因此看起来会有一个升级路径可用,但我想知道从AngularJS到下一代框架的升级是否会更简单.
http://eisenbergeffect.bluespire.com/preparing-for-durandal-nextgen/
要明确 – 我更关心的是为未来做出正确的选择(大型SPA,分成多个小型SPA),而不是我目前的需求.
解决方法
然而,框架本身可能并不那么重要.我认为你应该专注于在可重用组件中分离代码.无论是角色服务/工厂/提供商还是Durandal中的干净需求模块,它实际上并不重要.进入“新”框架应该只是添加适当的包装器.至于双向绑定使用oberserver插件来维护干净的POJO.
从我在NG2中的观点来看,最重要的变化将是生命周期事件的支持,所以即使在Durandal中使用它们,也会在NG2中以某种方式得到支持.至于构图,肯定会有一种在NG2中轻松模拟的方法.
对于当前的工作,在我看来,对于当前使用的Framework的决定而言,唯一重要的两件事是使用RequireJS和Framework简单性.当然你也可以将它添加到Angular,有几个指南,但Durandal是在考虑到RequireJS的基础上构建的.特别是在较大的项目中,这可以为您丢失或错误的依赖性带来很多麻烦.截至第二个论点 – >将Durandal移植到Angular并不是什么大问题,因为它是以一种简单易懂的方式编写的.反之亦然可能是完全不同的故事.将您的自定义指令作为模板和ko绑定的组合实现可能会非常困难:)
因此,作为一个结束语,如果它将是一个小项目,但需要持续支持以及将来更新到NG2,我会选择Durandal.除了RequireJS,一切都是可以交换和适应的.在Angular的情况下,我不确定新DI系统将如何彻底改变开发方式,这对我来说是一个显示阻碍.
顺便说一句.这是design-document for NG2.所以当你看到有些重要的东西会改变:
>路由器>坚持不懈>指令>模块化(也许我们终于看到RequireJS :))