前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Angularjs为什么在JS框架中排名第一

Angularjs为什么在JS框架中排名第一

作者头像
dys
发布2018-04-02 17:31:18
1.7K0
发布2018-04-02 17:31:18
举报
文章被收录于专栏:性能与架构

很多人感觉jquery 比 Angularjs 火太多啦,Angularjs怎么会是排名第一

首先说明一下,Angularjs 是JS的一个框架,而jquery 是一个JS库

jquery 就像一个工具箱,为我们提供了非常丰富好用的工具,我们想怎么用就怎么用,jquery只负责让我们更便利,不关心我们的工作方式和流程

Angularjs 则定义了一套工作规范,只能按照他的规则来工作,Angularjs是依靠高效的工作规范来提高我们的开发效率的

Angularjs的显著优势

数据双向绑定

举一个angular最简单的例子

<body ng-app>

<span>Insert your name:</span>

<input type="text" ng-model="user.name" />

<h3>{{user.name}}</h3>

</body>

执行后,在 input 中输入的内容会立即在 h3 中显示出来,input 和 h3 的内容完全同步

这就是数据的双向绑定,大概思路:

ng-model 指令在作用域中添加了一个名为 user.name 的数据模型,input 的值一变,数据模型也跟着改变{{user.name}} 是Angularjs的模板语言,用来显示名为user.name的数据模型的值,当数据模型的值改变时,会通知{{user.name}}进行改变

这样,通过隐藏的数据模型就实现了数据的双向绑定

如果没有Angularjs定义的这个规则,通过jquery来实现的话还是稍显复杂的

强大的内置指令

指令为html引入了新的语法,使html更强大

Angularjs内置了很多强大的指令,例如 repeat循环指令

代码语言:javascript
复制
<body ng-app="app" ng-controller="MainCtrl">
 <ul>
   <li ng-repeat="person in developers">
     {{person.name}} from {{person.country}}
   </li>
 </ul>
</body>

ng-repeat 指令非常简单的实现了 li 的循环处理

如果使用jquery实现,可能要引入模板插件,编写li循环模板代码,然后调用模板处理数据,从代码复杂度和代码可读性上看,Angularjs的指令都更加有优势

可自定义扩展指令

内置指令毕竟有限,Angularjs允许我们自定义指令,例如

代码语言:javascript
复制
app.directive('hello', function() {
  return {
    restrict: "E",
    replace: true,
    template: "<div>Hello readers</div>"
  }
});

这里简单定义了一个名为 'hello' 的标签,在html中就可以直接使用了 <hello></hello>

再看个例子,我们通过jquery的插件显示饼图

在html中定义一个容器节点

<div id="chart"></div>

在JS中调用饼图插件

$('#chart').pieChart({ ... });

在这里,如果不去看js代码,只看html很难理解这个节点的含义

如果使用指令,就会清晰很多

<pie-chart width="400" height="400" data="data"></pie-chart>

通过上面的几个例子,看到了Angularjs的一些优势,Angularjs的设计的确很优秀,例如通过模板和控制器使代码和逻辑层次分明,还引入了依赖注入、服务等后端框架常用的概念,对表单验证和单元测试也有非常好的支持,Angularjs还是非常值得学习的

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档