Javascript 为什么现在对客户端框架有如此大的推动?

Javascript 为什么现在对客户端框架有如此大的推动?,javascript,ruby-on-rails,django,angularjs,mvvm,Javascript,Ruby On Rails,Django,Angularjs,Mvvm,希望这个问题不是离题,我个人觉得这是一个非常有效的编程问题,我作为一个程序员展望未来 伙计们,我不明白为什么我想让我的网站加入客户端框架,比如Angular、主干、Ember、React、this、that或其他 事实是,为什么要学习像Angular这样的东西,而他们几乎是从那些已经在Angular 1.0上投资了数百万美元的人和公司的底层做起,以创建一个新的框架,他们称之为Angular 2.0 如果我想要一些基本的dom操作,为什么还要学习框架呢。例如,在my movies站点的主页上,您会

希望这个问题不是离题,我个人觉得这是一个非常有效的编程问题,我作为一个程序员展望未来

伙计们,我不明白为什么我想让我的网站加入客户端框架,比如Angular、主干、Ember、React、this、that或其他

事实是,为什么要学习像Angular这样的东西,而他们几乎是从那些已经在Angular 1.0上投资了数百万美元的人和公司的底层做起,以创建一个新的框架,他们称之为Angular 2.0

如果我想要一些基本的dom操作,为什么还要学习框架呢。例如,在my movies站点的主页上,您会注意到一些分页,这完全是通过获取从Django服务器视图传回的JSON并使用客户端解析数据来完成的。说我需要更新一部电影等等。。。为什么不通过Ajax传递一些数据并将响应发送回呢

底线是AngularJS和类似的东西,旨在取代成熟的框架,如Django、Ruby on Rails等。。。但是,为什么要让目前的生活更加艰难,去跳上这些时髦的项目,而这些项目似乎只做了这些根深蒂固的框架目前所能做的事情

对我来说,我玩得很有反应,有棱角,有骨气。我不喜欢学习一个完整的框架来做一些我自己做可能会更好的事情。似乎所有这些客户端框架都没有准备好开始生产,经常改变方式,使事情变得比许多普通任务更困难


对我来说,似乎每个从学校出来的人都像是,哥们,我必须建立一些有棱角的东西来跟上人群。我看不出Angular项目比Django或RubyonRails更好的原因,事实上,在大多数情况下,我认为Angular项目比Django或RubyonRails更差

正如评论中已经提到的,对于这个问题,应该根据具体情况考虑使用什么样的客户机/服务器体系结构,并且始终会有某种个人偏见

我无法从整体上谈论推送客户端框架,因为在我的工作场所,有一个推送客户端框架,原因很简单,但很重要,它明确定义了客户端和服务器职责的分离。服务器只负责响应客户端请求和发送原始数据,在我们的例子中,我们使用REST。然后,客户机只负责向用户呈现数据

这样做的力量是因为在5年左右的时间里,当下一个大客户机框架出现时,我们选择不使用任何一行代码,服务器端将不需要更改


尽管我喜欢angular,但我个人还是喜欢它,因为处理DOM操作的代码与使用HTML运行指令的干净程度有着明显的区别。即使在DOM中添加了额外的角度标记,您也确切地知道将呈现什么。

您应该提出您的问题。Angularjs非常适合构建动态单页应用程序,它允许清晰地将模型与视图分开。此外,这两种体系结构(富客户端、富服务器)都有其优点和缺点。但扩展是关键因素,为什么不让浏览器做昂贵的操作呢?我认为这“主要是基于意见的”,因为它过于情绪化,无法得到任何明确的答案,可能超出了媒体所能提供的范围。很明显,您已经形成了一个观点,并且正在寻找该观点的验证,而不是关于客户端框架优点的实际辩论。为什么您认为客户端框架可以取代服务器端框架?他们唯一的共同点是MVC风格。除此之外,他们解决了完全不同的问题。此外,如果您发现使用Django或Rails开发web应用程序有价值,那么您怎么能看不到客户端框架的价值呢?简单的回答是,客户端或服务器端的框架解决了web开发中常见的架构和技术问题。话虽如此,您不必使用这些工具。相反,你可以自己解决问题。有时候这可能是件好事。Angular 2.0的有趣之处在于他们如何放弃对IE10+的支持。这意味着,如果您正在编写供客户内部使用的软件应用程序,则需要等待,直到您的客户中没有一个仍在IE10上。现在,至少对我们来说,让我们的客户离开IE8是一场斗争。因此,当我看到Angular 2.0即将发生的根本性变化时,我的想法是,感谢上帝,我们的客户机/服务器代码可以单独迭代,我们甚至可能需要2-3年才能评估使用它。