Angular介绍
库和框架的区别
- jQuery:库
- angular:框架
- 其实可以简单的理解为:大而全的是框架,小而精的是库
AngularJs是什么
- 百度百科http://baike.baidu.com/link?url=CKrQ1574lIOkgQ8-FBB1fxuEJzIf0Jscf2n53rxuVjK37wm0M4LupH--17Ix6towMSRoizil9Dk8mqhK4-PXGK
- 一款非常优秀的前端高级 JS 框架
- 最早由 Misko Hevery 等人创建
- 2009 年被 Google 公式收购,用于其多款产品
- 目前有一个全职的开发团队继续开发和维护这个库
- 其核心就是通过指令扩展了 HTML,通过表达式绑定数据到 HTML。
- Angular不推崇DOM操作,也就是说在NG中几乎找不到任何的DOM操作
- angular,几乎不会使用angualr操作dom(但是angular内部肯定是使用dom来改变页面的值)
- Angular 主要是来做什么的,帮助我们方便的去写spa应用程序
什么是AngularJS
- 一个前端框架,提供一种无DOM操作的编程方式,在前端页面中引入了传统在后台开发中使用的一些思想,增强代码的结构和可维护性
- 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式
- 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务
- MVC的特性增强了代码的结构和可维护性,应对需求的变化做出最小的改动
什么是 SPA
- single page application的缩写
- 单页应用程序
- 原理就是:通过监视hashchange事件,根据不同的url中的锚点值,去动态的发送ajax请求去请求数据(简单的说就是不会看到页面刷新)
- 网站实例:music.163.com
SPA的优点
扩展:如何获取url中的各部分参数,比如hash
- 字符串操作
- 正则表达式去匹配url
- 创建a对象
var a=document.createElement('a');
a.hreg='http://www.baidu.com?id=23#home';
a.pathname
a.hash
a.search
为什么要使用Angular
- 总结一句话:为了更少的代码,实现更强劲的功能
- 很多操作都需要dom操作,但是angular中没有那么多的dom操作,这是因为angular帮我们封装了,减少了我们开发人员的dom操作
- 一般在angular中就不会出现jquery了,因为这两种思想正好是相悖的。
- 上面的意义只是皮毛,它真正的意义是:angular又是一场革命,带领前端进入了MVX时代。
- 这就像从手工业转为机械工业一样,以前很多东西都是我么你自己手动去做,现在我们有了gulp,webpack这些自动化构建工具。
Angular的使用
Angular相关资料
- AngularJS 1.x 官方网站
- AngularJS 2.x 官方网站
- Google Material Design for Angular
- Angular UI(Angular最大的第三方社区)
- AngularJS中文社区
- AngularJS中文社区提供的文档(不用翻墙)
安装 Angular
- 暴力安装:
- 手动的去github下载安装
- 通过工具安装:
- npm :
npm install angular
- bower:
bower install angular
- npm :
- CDN
- 本质都为了拿到angular.js这个文件。
理解angular的整个开发流程
ng-click="val = (val-0) + 1"
相当于:
var add = document.getElementById('add');
add.addEventListener('click',function(){
}
ng-model = "val";//angular就会帮助我们去创建一个val变量
相当于:
var num = document.getElementById('num').value;
- ng-init 指令: 用于对ng-model指定的值进行初始化操作
ng-init = "val = 10"
使用AngularJS的流程
- 借助npm下载到本地
- 在HTML代码中引入Angular.js包
- 在JS代码中通过
angular.module('myApp', [])
注册一个模块 - 在HTML代码中将刚刚定义的模块通过
ng-app="myApp"
指令的方式作用到一个特定的元素上 - 根据当前页面的情况(业务块)划分控制器
- 在HTML代码中将刚刚定义的控制器通过
ng-controller="ControllerName"
作用到特定的元素上 - 建模(根据界面原型抽象一个数据模型)得到一个视图模型(viewmodel)
- 在JS代码中通过
$scope
暴露需要提供到页面的数据成员 - 在HTML代码中将刚刚暴露出来的数据通过类似
ng-model/{{}}/ng-click
之类的指令绑定到特定的元素上 - 在JS中完成业务逻辑(还可以展开)
- 在思想上:
- JQ提高了操作DOM的开发效率
- NG几乎没有任何DOM操作(不是没有,只是不用我们自己操作)
- NG内置一个类似JQ的东西
angular.element()
- Angular 不提倡DOM操作,如果必须使用DOM的话,也不建议再去引用jquery,有内置
如何查看angular离线文档
- angular文档设计的非常好都是一个功能一个功能的js分开的,主模块有1000多kb,这个应该是大家见过的最大的js库了
- 因为angularJS的文档需要引用angularjs的东西,所以要用http-server模块打开的话,必须在文档的根目录启动hs -o
Angular 核心概念
- 模块化
- MVC - 思想
- 指令
- 双向数据绑定
angular.module(模块)
作用
语法
angular.controller(控制器)
作用
语法
- 控制器是通过模块对象来创建的:
双向数据绑定(双向数据绑定)
单向数据绑定
- 只能一数据模型的值改变,导致页面值的改变;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。