Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 用标准web技术取代angular_Angularjs_Angularjs Directive_Web Component_Ecmascript 6 - Fatal编程技术网

Angularjs 用标准web技术取代angular

Angularjs 用标准web技术取代angular,angularjs,angularjs-directive,web-component,ecmascript-6,Angularjs,Angularjs Directive,Web Component,Ecmascript 6,我正在从事一个项目,该项目有幸在最新的浏览器上使用ECMA6,该产品将在1.5年内发布。所以我们想既然Angular 2不可用(即将成为ECMA 6),为什么不使用Web组件呢。当我们这样做的时候,我们能不能不用回到石器时代就把棱角完全替换掉呢 如何替换角形? 有一个叫做的网站,它基本上是关于现代浏览器如何实际拥有jQuery传统上使用的大部分内容。我有兴趣为你看这样的东西 我们主要使用四个角度特征。我可以选择什么来替换它们 角度指令-->Web组件 角度模块-->ECMA 6模块(不完全相同

我正在从事一个项目,该项目有幸在最新的浏览器上使用ECMA6,该产品将在1.5年内发布。所以我们想既然Angular 2不可用(即将成为ECMA 6),为什么不使用Web组件呢。当我们这样做的时候,我们能不能不用回到石器时代就把棱角完全替换掉呢

如何替换角形? 有一个叫做的网站,它基本上是关于现代浏览器如何实际拥有jQuery传统上使用的大部分内容。我有兴趣为你看这样的东西

我们主要使用四个角度特征。我可以选择什么来替换它们

  • 角度指令-->Web组件
  • 角度模块-->ECMA 6模块(不完全相同)
  • 角度路由-->
  • 角度双向数据绑定

另外,我们不想用类似主干或余烬的东西来代替棱角。我们想用标准的Web技术来代替它,但是如果我们必须使用小的工具来填补这个空白,我们会考虑它。

< P>我在过去的3个星期里一直在研究,结果发现很多人都在考虑角度变化后采取了一个激烈的改变路径。幸运的是,正在升级的W3C Web组件标准实际上已经具备了我们所需要的一切,并且现在可以使用。因此,要回答这个问题:

  • 角度指令-->Web组件使用,直到所有浏览器都支持它
  • 角度模块-->ECMA 6模块部分问题通过HTML导入解决。但在浏览器支持之前,您也可以使用它
  • 角度路由-->有一个组件用于此™ 使用
  • 角度双向数据绑定-->在普通标准web组件之上添加了一个“神奇”层。这包括许多功能,包括
+再加上 如果您想知道连接文件以减少HTTP请求数量的构建过程,请参阅。扰流板:在即将到来的HTTP 2优化中,您可能不需要它

许多Angular项目使用Twitter引导进行布局。聚合物可以做到这一点,而且它与谷歌的(完全可选,但非常棒)配合得很好

如果您想让自己熟悉一般的web组件,这里有一堆不错的文章:

这里有大量的web组件:我不知道它是否会成为一个新的NPM,但是列表组件给人留下了深刻的印象,而且还在不断增长

为角度组件公开API相对比较复杂。从到,人们想出了各种各样的方法。为了使您的组件与外部世界交互,实际上,您公开的API和事件与标准HTML标记(如
)没有太大区别,您也可以使用

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

  • 您在angular上有巨大的源代码投资,不想将所有内容都移植到标准web。(Angular 2.0无论如何都会拒绝使用您的代码,因此您只能使用Angular 1。*)
  • 您的团队懒得学习新技术(在这种情况下,web可能不是这种态度的合适平台)
  • Angular很擅长它所做的事情,并且有自己的优势。Web组件解决了Angular试图解决的许多问题。Angular可能扮演了Web组件概念验证的角色。但现在是时候继续前进了。网络每天都在重塑自己,这是不可避免的

    我并不是说聚合物是一切的最终答案。充其量,这是另一个角度,将在几年内变得无用,但现在是学习和使用它的好时机。不过,这种聚合物很容易形成,而且往往离它们更近


    这是有原因的™是新的有一个应用程序™

    TLDR:认真考虑编写一个几乎有角度的2.0可压缩的角度1.3应用程序,在你自己的框架

    之前。 似乎您已经确定Angular以正确的方式做了很多事情,这就是您尝试复制它的原因,因此基本上您将通过组合一个大杂烩库来实现自己的功能。除非您投入大量工程时间,否则您构建的框架可能是:

    • 轻描淡写
    • 跨浏览器维护的噩梦(最糟糕的是)
    • 新员工难以学习
    如果没有一个框架可以实现您想要的功能,我认为您自己的框架是有意义的,但是通过尝试重新创建,您:

    • 承担了大量已经由专门团队完成的工程工作,这些工作本可以用于构建产品
    • 因为你必须:
      • 寻找那些愿意使用自己开发的框架而不是在其他地方可以使用的开源框架中提高技能的应聘者
      • 培训这些员工使用您的框架(祝您好运,除非您的文档成熟)
    我知道你的问题是如何替换Angular,但我看到太多的公司走上了自己的道路,并为此付出了代价。再说一次,如果你的预算中包含了大量的核心资源来构建(并记录和维护)框架,而且你不认为在时间紧迫的情况下,有任何机会在紧急关头被削减,那么滚动你自己的可能是有意义的。不过,我认为你应该认真考虑如何写角1.3应用程序,以便他们很容易端口到角2和走角路线。看看社区的大小就知道了