gpt4 book ai didi

angularjs - 用标准 Web 技术取代 Angular

转载 作者:行者123 更新时间:2023-12-03 07:40:33 25 4
gpt4 key购买 nike

我正在开发一个项目,该项目可以在最新的浏览器上使用 ECMA 6,其产品将在 1.5 年内发布。因此,我们想既然 Angular 2 不可用(将成为 ECMA 6),为什么不使用 Web 组件呢?当我们这样做时,我们可以完全取代 Angular 而不必回到石器时代吗?

如何替换 Angular?

有一个名为 youmightnotneedjquery.com 的网站这基本上是关于现代浏览器实际上如何拥有 jQuery 传统用途的大部分内容。我很想在 Angular 上看到类似的东西。

我们主要使用四个 Angular 功能。我可以选择哪些替换它们?

  • Angular 指令 --> Web 组件
  • Angular 模块 --> ECMA 6 模块(不完全相同)
  • Angular 路线 --> ???
  • Angular 2 路数据绑定(bind) --> ???
PS。我们不想用 Backbone 或 Ember 等类似的东西来取代 Angular。我们希望用标准网络技术取代它,但如果我们必须使用小工具来填补空白,我们会考虑它。

最佳答案

过去 3 周我一直在研究,结果发现,在 Angular 采取彻底变革道路后,许多人都在考虑替代方案。幸运的是,即将推出的 W3C Web 组件标准实际上拥有我们所需的一切,并且它现在可以与 polyfills from the Polymer project 一起使用。 。那么回答这个问题:

  • Angular 指令 --> Web 组件使用 polyfill直到所有浏览器都支持它。
  • Angular Modules --> ECMA 6 Modules 部分问题是通过 HTML 导入解决的。但您也可以使用 Traceur直到浏览器支持为止。
  • Angular Routes --> 有一个组件可供使用 <app-router> .
  • Angular 2 路数据绑定(bind) --> Polymer在普通标准 Web 组件之上添加了一个“魔法”层。这包括许多功能,包括 data-binding .

+加上更多

如果您想了解连接文件以减少 HTTP 请求数量的构建过程,请查看 Addy Osmani's post about Vulcanize 。剧透:即将到来的 HTTP 2 优化可能不需要它。

许多 Angular 项目使用 Twitter Bootstrap 进行布局。 Polymer 可以做到这一点,而且它与 Google 的 Paper elements 配合得很好。 (完全可选,但非常棒)。

如果您想让自己熟悉一般的 Web 组件,这里有很多不错的文章:http://webcomponents.org/articles/

这里有大量的网络组件:http://customelements.io/我不知道它是否会成为一个新的 NPM,但列表组件非常令人印象深刻并且还在不断增长。

为 Angular 组件公开 API 相对复杂。人们从link function想出了各种各样的方法。至 emitting events 。在 Web Components, however, it's really easy使您的组件与外界交互,实际上您公开的 API 和事件与标准 HTML 标签(如 <audio>)没有太大区别。 .

就像 Angular ,您可以使用Polymer with Dart也是如此。

结论

总的来说,我不认为有任何理由使用 Angular,除非:

  1. 您在 Angular 上投入了大量源代码,并且不想将所有内容移植到标准 Web。 (无论如何,Angular 2.0 都会弃用您的代码,因此您只能使用 Angular 1。*)
  2. 您的团队懒得学习新技术(在这种情况下,网络可能不是适合这种态度的平台)。

Angular 非常适合它正在做的事情,并且有自己的 Hype cycle 。 Web 组件解决了 Angular 试图解决的许多问题。 Angular 可能扮演了 Web 组件概念验证的 Angular 色。但现在是时候继续前进了。网络每天都在 reshape 自己,这是不可避免的moves someone's cheese .

我并不是说聚合物是一切问题的最终答案。它充其量只是另一个 Angular,几年后就会变得无用,但现在是学习和使用它的好时机。 W3C standards don't die不过很容易,而聚合物往往更接近它们。

RIP Angular 2009-2014

There's an element for that™ 是新的 There's an app for that™

关于angularjs - 用标准 Web 技术取代 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26382156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com