欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

angular简介和其特点介绍

程序员文章站 2022-09-21 20:58:02
以前开发(web或者移动端)前端主要使用jquery+原生js,如果使用某些前端ui框架的话,它自己还可能提供一些api可以使用。而且目前很多ui框架都是基于jquery的...

以前开发(web或者移动端)前端主要使用jquery+原生js,如果使用某些前端ui框架的话,它自己还可能提供一些api可以使用。而且目前很多ui框架都是基于jquery的,所以说一下由jquery跨到angularjs跨度较大,研究了一段时间的angularjs ,下面从整体上说说感受吧:

关于和jquery的比较

首先angular是一个mvc框架,它与jquery不同之处在于,前者致力于mvc代码解耦,采用model,controller以及view方式去组织代码,而后者提供给你了很多api函数,你可以不用写很多原生js去实现比较复杂的效果,比如说动画,$.animate,这样的效果如果需要原生js来写的话,代码量将会比较庞大;

其次,jquery没有定义你的代码如何组织,你可以将它放在一个单独的js文件中进行引用,也可以直接写在页面中采用script标签进行包裹,甚至可以直接以内联的方式写在html标签中,但是angularjs会将一个html页面分成若干个模块,每个模块都可以自己的scope,service以及directive,各个模块之间也可以进行通信,但是整体上结构是比较清晰的,就是说其代码组织方式是模块化的。

最后,jquery的思想是先设计好页面,然后在已有页面的基础上进行dom操作后展示页面,但是angular的view可能仅仅是一个框架,对view的dom操作或者时间监听都是在directive中实现的,而且一般情况下很少自己直接去写dom操作代码,只要你监听model。model发生变化后view也会发生变化。

关于适用场合

jquery应该适用于大多数web开发,移动端也有(jquerymobile),angularjs有人说更适合做spa(我个人认为在手机上的spa可能会引发性能上的问题,因为它的脏检查机制会影响性能),在web端,一些crud的应用或者管理类软件还是可以使用的(当然这里的理解可能不一定准确,会随着深入学习更多去了解和使用)。

关于ui的结合

开发任何产品都需要用到前端ui,目前很多ui是基于jquery的,这意味着你如果要用angularjs和这些ui组件的话,需要用angularjs的directive去重写些组件,这一过程是比较麻烦的,所幸的是,angular给我们提供了一些ui组件可以使用(web端主要是结合bootstrap前端组件),,而在移动端主要是结合ionic框架,但是随着angular的发展,很多html5的前端框架也慢慢集成了angularjs版本可供使用。

关于angularjs的特点

1.数据的双向绑定:这可能是其最激动人心的特性吧,view层的数据和model层的数据是双向绑定的,其中之一发生更改,另一方会随之变化,这不用你写任何代码!(想想jquery方式下怎么做吧)

2.代码模块化,每个模块的代码独立拥有自己的作用域,model,controller等。

3.强大的directive可以将很多功能封装成html的tag,属性或者注释等,这大大美化了html的结构,增强了可阅读性;

4.依赖注入,将这种后端语言的设计模式赋予前端代码,这意味着前端的代码可以提高重用性和灵活性,未来的模式可能将大量操作放在客户端,服务端只提供数据来源和其他客户端无法完成的操作;

5.测试驱动开发,angularjs一开始就以此为目标,使用angular开发的应用可以很容易地进行单元测试和端对端测试,这解决了传统的js代码难以测试和维护的缺陷

以上就是研究angularjs一段时间得出的结论,其中某些地方可能有所疏漏,没关系,接下来会展开其中某一点一步步去学习。