ng-简介
Angular 是什么
Angular(读音['æŋgjʊlə])是一套用于构建用户界面的 JavaScript 框架。由 Google 开发和维护,主要被用来开发单页面应用程序。
- 类似于 Vue.js
- MVVM(数据驱动视图思想)
- 组件化
- 模块化
- 指令
- ......
- 由 Google 开发和维护
- 开发单页面应用程序(SPA)
特性
- MVVM
- 组件化
- 模块化
- 指令
- 服务
- 依赖注入
- TypeScript
- ...
发展历史
起源
2009年,Misko hevery 和 Adam abrons 在业余时间打造了 GetAngular
Misko Hevery 接手了 Google 内部的一个项目 Feedback
,该项目经过6个月的迭代代码量已经达到了17000行。项目的开发和维护已经变得非常的困难。所有 Misko 就决定用 GetAngular
重写这个项目。
结果就是小伙子成功了,使用 `GetAngular
之后该项目从17000行缩减到了1500行,前后仅仅使用了三周时间。
Misko 领导一看,小伙子厉害啊,同时也看到了 GetAngular
所带来的商业价值,所以决定把 GetAngular
正式立项,组织专职团队开发和维护。
Abrons 后来离开了这个计划,但在 Google 工作的 Hevery 和一些谷歌员工如 Igor Minár 和 Vojta Jína 等则继续开发维护此库。
由于已不再是个人项目,所以开发团队将 GetAngular
重新命名为了 AngularJS
。
至此,AngularJS 就进入了漫长的发展迭代阶段。
- 经过了3年的发展,AngularJS 在2012年6月份,
1.0.0
版本正式推出。 - AngularJS 在1.2之后的版本不再支持 IE 6和7
- AngularJS 在 1.3 之后不再支持 IE8
- AngularJS 在 1.5 增加了类似组件化的开发方式
- 为过渡到 Angular2 做铺垫
- AngularJS
1.x.x
当前已发布到了1.6.x
困境
- 饱受诟病的性能问题
- 脏检查
- 落后于当前 Web 发展理念
- 例如组件化
- 模块化支持不好
- 对移动端支持不够友好
Angular 2 横空出世
Angular 1.x 由于问题太多,历史包袱太重,重构几乎不可能。
不过早在2014年3月,官方博客就有提及开发新版本 Angular 的计划。
2014年9月下旬一个大会上,Angular2
正式亮相。
2016年9月15号,Angular2
正式发布。
由于 ng2 几乎完全重写了 ng1 ,所以官方把2之后的版本都称之为 Angular。
Angular 2 之后的正式 Logo:
新版本发布了,那用户如何从 1 升级到 2 呢?
那到底要不要更新呢?
ng2 相比 ng1
- 移除了 controller+$scope 的设计方式,改用了当前主流的组件化构建
- 相比 ng1 性能更好
- 优先为移动端设计
- 更贴合未来标准
- EcmaScript 6
- Web Component
- TypeScript
- 反正就是更现代化,更好了......
现状
- 自 Angular 2 之后,官方承诺之后的版本都会兼容到 Angular 2
- 当前 Angular 最新发布版为
5.x.x
- 新版的 Angular 在 Github 上也已收获了 3万+ ☆
- 使用量低于 React 和 Vue
那我为什么要学习使用 Angular ?
任何一种技术或者框架,一定要有自己的特色,如果跟别人的完全一样,解决的问题也和别人一样,那存在的意义和价值就会遭到质疑。
- 企业需求
- 增加职业竞争力
- 技术的本质思想都是一样的,也许你在其它技术中无法理解的事物,在这门课程中你能找到答案。
这里我们要明白技术只是工具,主要目的还是用来帮助我们解决业务问题。
作为开发人员,我们对待技术的态度应该博学开放,多学习和了解不同技术。
只有当你见得东西多了才能有自己的想法,才不会人云亦云,不至于迷失在技术更新迭代的浪潮之中!
学习 Angular 的一些建议
- 读官方文档
- 写 demo 测试
- 写小项目练手
- 参与实际项目开发经验
- 日积月累......
相关链接
ng-简介的更多相关文章
- Flume NG简介及配置
Flume下载地址:http://apache.fayea.com/flume/ 常用的分布式日志收集系统: Apache Flume. Facebook Scribe. Apache Chukwa ...
- Flume NG 简介及配置实战
Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 clo ...
- 拥抱AngularJS
文中一些地方AngularJS简称ng 简介: ng诞生于2009年,由Misko Hevery等创建,后被Google收购,为克服HTML在构建应用上的不足而设计. 是一款优秀的前端JS框架,核心特 ...
- Andrew Ng机器学习算法入门(一):简介
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...
- Flume NG之Interceptor简介
转载地址:http://www.cnblogs.com/lxf20061900/p/3658172.html 有的时候希望通过Flume将读取的文件再细分存储,比如讲source的数据按照业务类型分开 ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 《AngularJS深度剖析与最佳实践》简介
由于年末将至,前阵子一直忙于工作的事务,不得已暂停了微信订阅号的更新,我将会在后续的时间里尽快的继续为大家推送更多的博文.毕竟一个人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的关注和支持sh ...
- 1.Struts2简介和Struts2开发环境搭建
一.Struts2简介: 1.什么是Struts2? 著名的SSH三大框架分别为:表现层(Struts).业务逻辑层(Spring),持久化层(Hibernate). Struts2是在WebWork ...
- 版本控制简介,git使用----使用GitHub托管代码
关于版本控制: 很久以前,人们苦于对写过的代码进行版本的管理,经常过了一段时间想恢复原来写过的代码却又忘了不知道丢到哪儿去了,有的人用加上时间后缀来命名文件的方法,便于后期维护,但是这样做的麻烦也很大 ...
- lecture1-NN的简介
这是DL的发明人Hinton在多伦多大学的2013年冬季教授de课程,并将视频分享到coursera网站上.其中不但有视频,也有课件,但是Hinton主页上还有他上课的课后问题,Hinton告诉学生这 ...
随机推荐
- 题解 UVA1479 【Graph and Queries】
\[ \text{Preface} \] 算是一道思维难度稍易,代码难度稍难的题吧. \[ \text{Description} \] 给出一张 \(n\) 个点,\(m\) 条边的图,点带权.需要支 ...
- TestStand 基础知识[6]--Build-in Step Types (1)
Step Types 有TestStand自带的,也有自定义的.本文先介绍自带的Step Types. 首先什么是Step Types ? 翻译过来就是步骤的类型,类似数据类型--数据有整型,字符串, ...
- Visual Studio 2015 配置 Python 环境
Visual Studio 2015可以在安装时选择安装Python环境,首次使用VS2015执行python时需要配置环境变量: 配置VS2015的环境前需要先下载Python并安装: https: ...
- [redis读书笔记] 第一部分 数据结构与对象 简单动态字符串
本读书笔记主要来自于<<redis设计与实现>> -- 黄键宏(huangz) redis主要设计了字符串,链表,字典,跳跃表,整数集合,压缩列表来做为基本的数据结构,实现键值 ...
- EF core (code first) 通过自定义 Migration History 实现多租户使用同一数据库时更新数据库结构
前言 写这篇文章的原因,其实由于我写EF core 实现多租户的时候,遇到的问题. 具体文章的链接: Asp.net core下利用EF core实现从数据实现多租户(1) Asp.net core下 ...
- Metasploit学习笔记(一) Samba服务 usermap_script安全漏洞相关信息
一.Samba介绍 Samba是linux和unix系统上实现smb协议的一个免费软件,由客户机和服务器构成.SMB是一种在局域网上实现共享文件和打印机的协议.存在一个服务器,客户机通过该协议可以服务 ...
- Idea操作ElasticSearch
前提: 1.ES服务成功启动 2.node.js成功启动 一.创建索引库 1.目录展示 2.导入依赖 <dependency> <groupId>org.elasticsear ...
- Linux部署.NetCore站点 使用Supervisor进行托管部署
前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...
- Re:萌娘百科上的黑幕实现
Re:萌娘百科上的黑幕 说明 本文所有的代码均来自萌娘百科.萌娘百科打钱! 第零段话(我想说的) 这方面不是我的专长,所以有的地方说的不对也请纠正! 我可不是萌娘百科的员工或者管理员或者收了钱 我只是 ...
- centos 记录所有用户操作命令的脚本
使用history不能看到所有用户的命令记录,如何看所有用户的操作记录. 如下: 在 /etc/profile 最下面加入如下代码即可. PS1="`whoami`@`hostname`:& ...