除了保持当前版本的DurandalJS之外,DurandalJS项目的所有者现在正在Google上使用AngularJS Next(v2?)。这两个框架正在趋同。
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),而不是我目前的需求。
答案 0 :(得分:6)
我不确定哪一个是现在最好的选择...实际上我会说他们都没有足够的未来。 Angular 2.0明显不同于1.0,当然也来自Durandal。
然而,框架本身可能并不那么重要。我认为你应该专注于在可重用组件中分离代码。无论是角色服务/工厂/提供商还是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。所以当你看到那里重要的一切都会改变: