我正在开发一个项目,该项目在最新的浏览器上使用ECMA 6,可以在1。5年内发货。因此我们认为为什么不使用Web组件,因为Angular 2不可用(这将是ECMA 6)。虽然我们在这里,但是我们可以完全取代Angular而不必回到石器时代吗?
这个名为youmightnotneedjquery.com的网站基本上是关于现代浏览器实际上如何传统上使用jQuery的大部分内容。我很想看到像Angular那样的东西。
我们主要使用四个Angular功能。我可以选择更换它们吗?
PS。我们不想用类似Backbone或Ember之类的东西替换Angular。我们希望用标准网络技术取代它,但如果我们必须使用小工具来填补空白,我们会考虑它。
答案 0 :(得分:46)
我在过去3周内一直在研究,结果发现很多人在Angular采取了激烈的改变之后正在考虑另一种选择。幸运的是,升级的W3C Web Components标准实际上已经满足了我们所需要的一切,它现在可以用polyfills from the Polymer project工作。所以回答这个问题:
<app-router>
的组件。如果您想知道连接文件的构建过程以减少HTTP请求的数量,请查看Addy Osmani's post about Vulcanize。 Spoiler:即将进行的HTTP 2优化也可能不需要它。
许多Angular项目使用Twitter Bootstrap进行布局。聚合物可以做到这一点加上它与Google的Paper elements很好地配合(完全可选但非常棒)。
如果你想让自己熟悉一般的网络组件,这里有一些很好的文章:http://webcomponents.org/articles/
这里有大量的网络组件:http://customelements.io/我不知道它是否会成为一个新的NPM,但列表组件相当令人印象深刻且不断增长。
公开Angular组件的API相对复杂。人们已经提出了从link function到emitting events的各种方法。在Web Components, however, it's really easy中,您的组件可以与外部世界进行交互,实际上您公开的API和事件与<audio>
等标准HTML标记没有太大区别。
就像Angular一样,您也可以使用Polymer with Dart。
总的来说,我没有看到任何理由使用Angular,除非:
Angular对它正在做的事情有好处,并有自己的Hype cycle。 Web组件解决了Angular试图解决的许多问题。可能Angular可以作为Web组件的概念证明。但现在是时候继续前进了。网络每天都在重塑自己,moves someone's cheese不可避免。
我不是说 Polymer是一切的最终答案。充其量只是另一个Angular会在几年内变得毫无用处,但现在是学习和使用它的好时机。虽然W3C standards don't die很容易,但聚合物往往更接近它们。
有一个要素是新的有一个适合该应用的应用
答案 1 :(得分:4)
TLDR:在推出自己的框架之前,认真考虑编写一个几乎与Angular 2.0兼容的Angular 1.3应用程序
好像你已经确定Angular以正确的方式做了很多事情,这就是你试图复制它的原因,所以基本上你会通过组合大量的图书馆来推动自己。除非您有大量的工程时间投入,否则您构建的框架可能是:
如果没有一个框架可以做你想要做的事情,我认为滚动你自己是有道理的,但是通过尝试重新创建Angular你是:
我知道你的问题是如何取代Angular的,但我看到有太多公司走自己的路,并为此付出代价。同样,如果您的预算包含大量的核心资源来构建(并记录和维护)框架,并且您认为如果时间紧迫,如果时间推迟推动,那么角落将会被削减,那么滚动你自己可能有意义。但是,我认为你应该认真考虑阅读如何编写Angular 1.3应用程序,以便它们很容易移植到Angular 2.0并进入Angular路线。只要看看你错过的社区规模:
http://www.airpair.com/js/javascript-framework-comparison