Angular 5 快速入门开发非视频教程,告别Angular.js , Angular 2
一、概述 尽管被称为
看起来差不多半年就发布一个新版本,不过实际上从重写的版本 在
二、引入angular环境
为了避免这个繁琐的过程影响对 下图是库的构成示意,其中的蓝色部件均打包在库中:
你可能注意到 如果你对这个库有兴趣,可以访问github上的 http://github.com/hubwiz/a5-l... 仓库。 三、创建Angular组件
组件提供了很好的复用性,在一堆组件的基础上,我们使用简单的胶水代码就可以实现相当复杂的交互功能。 现在让我们来创建 @Component({ selector: "ez-app",template: `<h1>Hello,angular5</h1>` }) class EzComp{} 在
四、创建Angular模块
为了区别于JavaScript语言本身的模块概念,在本课程中将使用__NG模块__来表示一个Angular模块。 类似于组件,NG模块就是一个应用了 @NgModule({ imports: [ BrowserModule ],declarations: [ EzComp ],bootstrap: [ EzComp ] }) class EzModule{} 同样,
需要强调的是, NG模块
通常情况下开发Web应用时,我们都需要引入 五、启动Angular应用 前面课程中,我们已经创建了一个组件和一个NG模块,不过似乎只是定义了一堆的元数据,几乎没有写太多有价值的代码。 启动代码很简单,引入 <pre> √ 平台对象:PlatformRef
平台对象的 六、为什么这么复杂? 可能你已经感觉有点复杂了:只是为了写一个 事实上这些复杂性是随着Angular的发展逐步引入的,从好的一方面说,是提供给开发者的可选项逐渐增多了,适用场景变多了。 比如,在Angular2正式版之前,都没有NG模块的概念,你只要写一个组件就可以直接启动应用了。Angular团队的预期应用场景是大规模前端应用开发,因此显式的NG模块声明要求也是容易理解的。不过即使是小型的应用,由于可以只使用一个NG模块,因此这一点的复杂性增加倒也不多,只是增加了学习和运用这个新概念的成本。 另一个显而易见的复杂性,在于多平台战略的引入。Angular希望让应用可以跨越浏览器、服务器等多个平台(基本)直接运行。因此免不了抽象一个中间层出来,我们需要在应用中显式地选择相应的平台实现模块:
第三个复杂性来源于对预编译(
对于Angular而言,编译将入口NG模块定义转换为NG模块工厂( 尽管AOT编译通常在构建阶段运用,我们可以在浏览器里模拟这个分两步的过程。 七、理解Angular的初衷 除了框架本身的功能强大导致的复杂性,Angular的另一个复杂性来源在于其高度封装的声明式API,让开发者难以揣摩、洞察框架的实现机制,因此使用起来就很心虚,一旦出现问题则难以分析排错:
不能把Angular当作黑盒来使用。 一方面原因在于,Angular是以其声明式的模板语法为核心提供API开发接口的,开发者书写的模板,经过框架相当复杂的编译处理,才渲染出最终的视图对象。如果不尝试了解从模板到视图对象这个过程究竟发生了什么,我相信你始终会有一种失控的感觉。 另一方面原因在于,Angular是一个框架,它搭好了应用程序的架子,留了一些空隙让开发者填充。如果不尽可能地了解框架的运行机制,很难充分地利用好框架。 开发Angular的出发点,是为了实现用HTML来编写用户界面,想想一个静态网页有多容易开发,你就知道这是多么好的想法:
原生HTML的问题在于,首先它需要借助于JavaScript才能实现过得去的用户交互,其次它只有那么多标签可用,难以担当开发用户界面的大任。 既然浏览器不能直接解释
写在文末:相信很多学习angular的同学都看过我写的内容,想来或多或少的应该有些帮助。希望这个内容能给大家带来更多的帮助,让大家能够更快的进入angular5的世界,更多精彩内容请移步: http://xc.hubwiz.com/course/59de66862d4f22811dc6b2f7 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- webService之hello级别中的注意事项
- 在Scala中,为什么Array(“1”)“-3”输出Array [Any] = Arr
- unix网络编程
- 为什么SBT的Scala(2.10)不包括Akka?
- angularjs – Angular JS $timeout vs $interval
- 如何退出Vim quickfix?
- [博客迁移]探索Windows Azure 监控和自动伸缩系列1 - 连接中
- Angular 2 AOT不起作用.为什么“platformBrowser().bootstr
- webservice(四) 发布webservice服务和客户端调用的方式汇总
- 【WebService】springboot整合cxf实现webService远程调用