ng2综述

ng2的rc版本和今年9月中旬发布的2.0.0正式版本,在核心思想上面是有些变动的。

为了降低原来使用angular1的开发者切换到angular2的成本。

谷歌angular2团队在架构angular2的过程中,在权衡纯components组件化开发还是ngModule system之间的比重上面做了不少妥协。

个人的项目开发体会

确实,我在写ng2-tutorial的过程中,内心还是有些感慨的。

毕竟自己是angular2在rc-1版本的时候就开始使用了,所以最近在迁移正式ng2版本的过程中,要重写几乎原来的1/5代码,代价比较大。

不过,angular2的正式版本相比rc版本,在开发理念上面充分照顾了国内的angular1开发者,

除了纯typescript语法外,angular2在原来的模块体系上增加组件化开发的概念,优化了路由体系及解析算法,同时在多处引入了按需加载的概念。

在此,笔者还是推荐国内的开发者将angular1迁移到angular2,虽然迁移成本比较高,但是worth it。

ng2核心api漫谈

ngModule

NgModule的概念

NgModule是angular2应用中最topLevel的概念,它将angular应用划分为紧密连接的函数模块。

NgModule的使用

1.所有的ng2模块都是一个通过 @NgModule装饰的类。

2.@NgModule接受的参数是一个元数据。

3.这个元数据的作用是指导angular2 compiler如何处理angular 模块。

4.这个元数据的主要key值包括如下(由于英文解释比较迂回,笔者进行了二次解释)。providers :定义模块的依赖注入

declarations : 定义模块内部需要依赖的directives pipes

imports : 引入模块解析必须依赖的directives pipes

exports :导出模块间互通的directive等接口

entryComponents : 入口组件,在声明定义时就会进行编译

bootstrap : 初始化的模块,默认会自动加入entryComponents数组

这个通过@NgModule定义出来的module,使用bootstrapModule方法运行后,即可完成ngModule分支搭建的小型angular2应用。

Components

Components的概念

Components是angular2应用中组件化的代表,它是继ngModule后的第二个核心概念:组件。

Components的使用

1.类似NgModule,所有的ng2组件都需要@Component来定义

2.@Component接受的参数是一个元数据。

3.这个元数据的作用是指导angular2 compiler如何处理angular组件。

4.这个元数据的主要key值包括如下template :组件字符串,可以通过require('html')的形式引入,配合webpack的raw-loader来处理。

styles : 组件字符串样式数组,同样通过require('css/less/scss')

viewProviders : 组件template依赖的directive等片段化对象。

这个通过@Components定义出来的Components,使用export class的形式,即可被一个angular模块添加到@NgModule的declarations里面,完成它加载进ngModule的使命。

Router

Router的概念

Router是angular2应用中对比市面上的react-router等比较出色的路由,直观而易用。

Router的使用

1.在使用Router的时候,需要将RouterModule添加进ng2模块的imports,提供模块的路由指令。

2.Router支持嵌套路由,异步加载,场景转换等。

3. router-outlet 是angular2渲染组件路由的路标系统,相关path对应的component会查找它并渲染。

4.一个基本的Router配置数组如下:

path : 即路径,类似location.path

component : 相关path需要加载的组件

children : 子路由

总结

angular2的开发模式遵守严格的规则,这样可以让开发者都依循它的设计理念来开发业务模块。

对于熟悉angular1的开发者而言,迁移到angular2的主要成本在于typescript和components思想的转变。另外,国内关于ng2的论坛和相关资料也比较少,使用ng2需要开发者有一定的英文基础。

具体的ng2构建web应用教程,可以参考如下链接

angular中文社区,github账号

angular自带的一些api_Angular2.0正式版api使用漫谈相关推荐

  1. realme真我GT2系列节后登场:出厂自带realme UI 3.0正式版

    随着春节的临近,各大手机厂商之间关于旗下新一代旗舰的竞争变得愈发激烈.在小米12系列亮相后,realme旗下新一代旗舰GT2 Pro也成为备受瞩目的一款机型,该机将于1月4日与大家见面,截至目前已经有 ...

  2. ASP.NET 2.0 正式版中无刷新页面的开发

    ASP.NET 2.0 正式版中无刷新页面的开发 在已经发布的 ASP.NET2.0 中,无刷新页面开发相关部分同 beta2 有不少改动.而且在越来越多的 Ajax 开发包被开发出来的情况下, AS ...

  3. Cocos2d-x 3.0正式版及android环境搭建

    开发环境是:mac + xcode + eclipse ,在win以下的环境和这个都是一样的,唯一不一样的就是环境变量的配置. 以下主要介绍cocos2d-x环境的设置以及android的环境搭建 1 ...

  4. 侠客博客v1.0 正式版版本发布

    欢迎来到本页面,我猜想您一定是带着疑问进来的,那么首先我来介绍一下 侠客博客 这个软件吧.他是一款能帮助SEO人士自动做外链的软件.目标是在未来几个月发展成为类似虫虫一样庞大的外链软件.帮助站长提高网 ...

  5. cocos2d-x 3.0正式版创建project笔记

    cocos2d-x 3.0正式版创建project笔记 不知道Beta版那个高大上的对话框哪里去鸟,正式版又回归到命令行,不知道触碰如此频繁的玩弄追随者的编程习惯是出于什么心理,假设不是为了这个跨平台 ...

  6. java 7 发布,【UC浏览器】Java平台7.0正式版发布啦

    [UC浏览器]Java平台7.0正式版发布啦 UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB.WAP页面浏览,速度快而稳定,页面排版美观:具有网站导航.搜索.下载.个人数据管理等功能,您能 ...

  7. vue 3.0 正式版_Vuejs 3 Release:One Piece. Vuejs 3.0 正式版发布!代号:海贼王

    Vuejs 3.0 在北京时间2020年9月19日凌晨,终于发布了 3.0 版本,代号:One Piece.此次vue3.0 为用户提供了全新的 composition-api 以及更小的包大小,和更 ...

  8. iView 一周年了,同时发布了 2.0 正式版,但这只是开始...

    两年前,我开始接触 Vue.js 框架,当时就被它的轻量.组件化和友好的 API 所吸引.之后我将 Vue.js 和 Webpack 技术栈引入我的公司(TalkingData)可视化团队,并经过一年 ...

  9. 一加连续点Android版本号,一加6推送国内首个安卓9.0正式版!刘作虎:一加6T出厂就预装...

    原标题:一加6推送国内首个安卓9.0正式版!刘作虎:一加6T出厂就预装 在今年5月份的谷歌2018 I/O开发者大会上,谷歌正式发布了Android P(安卓9.0)的开发者预览版.这次开发者预览版除 ...

  10. 余承东:华为6G研发还需10年;库克“iPhone 11势头强劲”;TensorFlow 2.0正式版发布​ | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

最新文章

  1. 不同命名空间的对象二进制反序列化问题
  2. 音视频开发(37)---麦克风阵列语音增强(二)
  3. mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化
  4. Java 工程与 Eclipse 高级用法
  5. [转载] 6.3 cmath--数学函数
  6. 修改mysql默认字符集为latin1_修改MYSQL默认编码为UTF8
  7. Ant Design学习——TimePicker
  8. 计算机系军训口号四句霸气,军训口号 四句 霸气
  9. App下载的视频导进电脑中生成.mp4文件的方法
  10. 发邮件+实习+简历+
  11. linux服务器挂载ntfs u盘,如何在linux下挂载NTFS格式的U盘或硬盘。
  12. mysql ibatis count_[mysql] mysql-myibatis-整理
  13. turtle(海龟)库的使用
  14. iOS 屏幕旋转监听
  15. java holder详解,Java基础系列18:Holder技术的实现原理分析
  16. AI黑科技:目前最流行的人工智能换脸软件(FakeAPP/Faceswap/Openfaceswap/Deepfacelab)的简介、对比之详细攻略
  17. 美信监控易:石油销售公司全省IT一体化运维解决方案
  18. 联想电脑亮度无法调节,蓝牙无法连接
  19. PHP处理iso8583报文
  20. 机器学习数据划分笔记(train_test_split)

热门文章

  1. Flutter学习 — 创建一个 grid List
  2. window服务器搭建私有Git详解
  3. Linux(Fedora 20) EFI 启动Windows出错 \EFI\Microsoft\Boot\bootmgfw.efi is missing
  4. C# 屏蔽windows功能键
  5. 一些简单的二维数学的算法。
  6. OPCServer:使用Matrikon OPC Server Simulation
  7. iOS (导航条)navBar 透明
  8. 得存一波板子了。。。。
  9. “我爱淘”冲刺阶段Scrum站立会议3
  10. priority_queue 优先队列 hdu裸题。