[Web翻译]AngularJS和Angular有什么区别?

3,245 阅读5分钟

原文地址:gorrion.io/blog/angula…

原文作者:gorrion.io/blog

发布时间:2019年12月30日

Angular是一个众所周知的框架,为构建Web应用而生。它非常适合小型和大型应用程序,所以它真的值得学习和使用。阅读我的文章,了解如何选择它的一个版本--AngularJS或其他。

介紹

可能对于大多数前端开发人员来说,Angular是一个众所周知的框架,是为构建Web应用而生的。如果我们想在我们的项目中使用Angular,我们必须选择它的一个版本 - AngularJS或其他。 AngularJS - 或者有些人可能更喜欢。Angular 1 - 创建于2009年。它为我们带来了双向数据绑定,让我们看到JavaScript中的数据变化自动显示在UI上。此外,AngularJS的指令可以让我们创建比以往更多的分离和可重用的代码。一般来说,它让我们这些程序员能够以更简单的方式,以MVC或MVVM架构(有时也被称为MVW架构(Model-View-Whatever))编写应用程序。它在测试前端应用程序方面向前迈进了一步,因为它的依赖注入机制有助于模拟依赖。

开始

我必须说,我对Angular真的很着迷。随着时间的推移,它已经获得了许多开发人员的支持。他们创造了很多有用的包,让编码变得更快。越来越多的东西被添加到核心中,所以Angular团队决定创建一个全新的框架。起初,这个新框架被命名为Angular 2。有时可能会造成轻描淡写,因为时间久了,测试版就改名为Angular。现在,当人们想找一些AngularJS的代码时,他们可能会找到与Angular 2或更高版本相关的东西。更高的,因为Angular 4是在2016年12月公布的。创作者特意跳过了3号,以避免由于路由器包的版本错位而造成混乱,而路由器包的版本已经发布。第4版的Angular是向下兼容Angular 2的。

控制器与组件

那么AngularJS和Angular有什么区别呢?首先,Angular是基于TypeScript的,而AngularJS是基于JavaScript的。TypeScript是ES6的超集,它向后兼容ES5。Angular也有ES6的优点,比如:lambda操作符、迭代器或反射的机制。 AngularJS使用了scope和controller的术语。为了对一个变量进行作用域,你可以添加许多变量,这些变量在View和Controller中都是可见的。AngularJS还有一个rootScope的概念。rootScope中的变量在整个应用程序中都是可用的。Angular没有范围或控制器的概念。取而代之的是它使用组件的层次结构作为其主要的架构概念。组件是一个带有模板的指令。这与ReactJS--另一个用于构建用户界面的库--的方法类似。

模板引擎的差异

AngularJS有很多指令,每个开发者也可以指定自定义的新指令。Angular也有标准指令,但它们的使用方式有点不同。例如:ng-model在AngularJS中意味着你要创建双向绑定。如果你想创建单向绑定,你应该使用ng-bind。Angular只发生ngModel,但如果你会只写在。"[]",你会得到单向绑定。如果你想创建双向绑定,你必须把它写在:"[()]"。“[( )]”. 我们之所以要这样写,是因为"[ ]"用于属性绑定,"( ) "用于事件绑定。在Angular中,有些指令的名字已经改变了,比如ng-repeat改为ngFor。当我在测试版中开始使用Angular 2做项目时,一开始就犯了一些常见的错误,比如当我想要双向绑定时,就试图只在方括号中使用ng-repeat或ngModel。

还有什么变化?

当然如果Angular是新版本,你可以怀疑它比旧版本有一些优势。没错,Angular有很多优势。首先是模块化。很多核心功能被移到了不同的模块中。这造成了更轻更快的核心,动态加载,异步模板编译,并增加了对反应式编程的支持。在测试版之后,创作者增加了非常棒的东西:angular cli。有了这个包,你可以很容易地创建你的Angular项目的脚手架,这将是所有的配置。

那么AngularJS还是Angular?

想知道哪个版本最适合你?新版本的Angular是一个流行的解决方案。此外,大多数情况下,它将是一个更好的选择。无论如何,在你为你的新项目选择其中一个之前,请尝试回答一些问题。 你想使用什么库? 它们与Angular兼容吗? 我们想要支持哪些网络浏览器?(这个真的很重要) 如果你只选择新的浏览器,那么Angular是最好的。因为它是一个前瞻性的库,但不要忘记其他浏览器。比如说 IE8,你一定要用1.3版本的AngularJS,支持IE8以上的浏览器。

总结

Angular是一个伟大的框架。它在AngularJS方面有很多改进。它将会变得越来越流行,我认为它很适合小的应用,也适合大的应用,所以它真的值得学习和使用。在我们谈论Angular的时候,我想注意到还有ReactJS,它是Angular的一个小对手,我将在下一篇文章中再写一些关于它的内容。


通过( www.DeepL.com/Translator )(免费版)翻译