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 相关文章推荐
javascript Firefox与IE 替换节点的方法
Feb 24 Javascript
JavaScript获取当前页面上的指定对象示例代码
Feb 28 Javascript
jquery控制select的text/value值为选中状态
Jun 03 Javascript
利用JS实现数字增长
Jul 28 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
Dec 08 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
Jul 31 Javascript
vue.js循环radio的实例
Nov 07 Javascript
vue使用nprogress实现进度条
Dec 09 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 Javascript
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
php循环输出数据库内容的代码
2008/05/24 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
探究数组排序提升Python程序的循环的运行效率的原因
2015/04/01 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
python与php实现分割文件代码
2017/03/06 Python
python3中property使用方法详解
2019/04/23 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
会计工作检讨书
2015/02/19 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
活动经费申请报告
2015/05/15 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
珍爱生命主题班会
2015/08/13 职场文书
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL