Angular开发者指南之入门介绍


Posted in Javascript onMarch 05, 2017

什么是Angular

AngularJS是动态Web应用程序的结构框架。 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程序的组件。AngularJS的数据绑定和依赖注入消除了许多你不得不编写的代码。这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴。

动态应用程序和静态文档之间的动态适配常常通过以下方式解决

  • 一个库:一组在编写网络应用程序时非常有用的函数。你的代码是负责在它调用库中它认为合适的。 例如jQuery
  • 框架:Web应用程序的特定实现,其中你的代码填充详细信息。框架是负责,当它需要某些应用程序特定时调用你的代码。 例如,durandal,ember等。

AngularJS采取另一种方法。 它尝试通过创建新的HTML结构来最小化文档中心HTML和应用程序需要的阻抗之间的不匹配。 AngularJS通过我们调用指令的构造来教导浏览器的新语法。 示例包括:

  • 数据绑定:{{}}
  • DOM控制结构,用于重复,显示和隐藏DOM片段
  • 支持表单和表单验证
  • 将新行为附加到DOM元素,例如DOM事件处理
  • 将HTML分组为可重用组件。

一个完整的客户端解决方案

AngularJS不是构建Web应用程序的客户端的整体谜题中的单一部分。它处理所有你曾经用手写的DOM和AJAX粘合代码,并把它放在一个定义良好的结构中。这使得AngularJS认为应该如何构建一个CRUD(创建,读取,更新,删除)应用程序。 但是,虽然它的意见,它也试图确保其意见只是一个起点,你可以轻易改变。 AngularJS提供了以下开箱即用的:

  • 在一个连贯的集合中构建一个CRUD应用程序所需的一切:数据绑定,基本模板指令,表单验证,路由,深层链接,可重用组件和依赖注入
  • 可测试性故事:单元测试,端到端测试,模拟和测试线束
  • 发布应用程序以目录布局和测试脚本为起点。

AngularJS的讨巧之处

AngularJS通过向开发人员提供更高级别的抽象来简化应用程序开发。像任何抽象一样,它以灵活性为代价。换句话说,不是每个应用程序都适合AngularJS。AngularJS是用CRUD应用程序构建的。幸运的是,CRUD应用程序代表了大多数Web应用程序。 为了理AngularJS有什么好处,但它有助于理解什么时候一个应用程序不是一个很好的适合AngularJS。

游戏和GUI编辑器是使用密集和棘手的DOM操作的应用程序的例子。这些类型的应用程序不同于CRUD应用程序,因此可能不是一个很好适合AngularJS。在这些情况下,最好使用具有较低抽象级别的库,例如jQuery。

AngularJS的禅

  • 注册回调:注册回调会杂乱你的代码,使得很难看到树的森林。 删除常见的样板代码,如回调是一件好事。 它大大减少了你必须做的JavaScript编码量,它使你更容易看到你的应用程序做什么。
  • 以编程方式操纵HTML DOM:操纵HTML DOM是AJAX应用程序的基石,但它很繁琐,容易出错。通过声明性地描述在应用程序状态更改时UI应该如何更改,您将从低级DOM操作任务中释放出来。大多数使用AngularJS编写的应用程序从不需要以编程方式操作DOM,尽管如果你愿意的话。
  • 与UI进行数据封送:CRUD操作构成了大多数AJAX应用程序的任务。 从服务器到内部对象到HTML表单的编组数据流,允许用户修改表单,验证表单,显示验证错误,返回到内部模型,然后返回到服务器,创建了很多模板文件代码。 AngularJS消除了几乎所有的这个样板,留下描述应用程序的整体流程的代码,而不是所有的实现细节。
  • 写入大段的初始化代码只是为了开始:通常你需要写很多管道只是为了获得一个基本的“Hello World”AJAX应用程序工作。使用AngularJS,您可以使用服务轻松引导应用程序,这些服务以类似Guice的依赖注入方式自动注入到应用程序中。这允许你快速开始开发功能。作为奖励,你可以完全控制自动化测试中的初始化过程。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
动态创建样式表在各浏览器中的差异测试代码
Sep 13 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
angular使用post、get向后台传参的问题实例
May 27 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 Javascript
vue项目中仿element-ui弹框效果的实例代码
Apr 22 Javascript
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
JavaScript自定义文本框光标
Mar 05 #Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 #Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 #Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 #Javascript
详解vue父子模版嵌套案例
Mar 04 #Javascript
vue指令以及dom操作详解
Mar 04 #Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
Mar 04 #Javascript
You might like
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python内置函数reversed()用法分析
2018/03/20 Python
使用Python写一个小游戏
2018/04/02 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python子类继承父类构造函数详解
2019/02/19 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
幼儿园运动会加油词
2014/02/14 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
毕业设计致谢词
2015/05/14 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
Python代码实现双链表
2022/05/25 Python
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers