angular自带的一些api_Angular2.0正式版api使用漫谈
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使用漫谈相关推荐
- realme真我GT2系列节后登场:出厂自带realme UI 3.0正式版
随着春节的临近,各大手机厂商之间关于旗下新一代旗舰的竞争变得愈发激烈.在小米12系列亮相后,realme旗下新一代旗舰GT2 Pro也成为备受瞩目的一款机型,该机将于1月4日与大家见面,截至目前已经有 ...
- ASP.NET 2.0 正式版中无刷新页面的开发
ASP.NET 2.0 正式版中无刷新页面的开发 在已经发布的 ASP.NET2.0 中,无刷新页面开发相关部分同 beta2 有不少改动.而且在越来越多的 Ajax 开发包被开发出来的情况下, AS ...
- Cocos2d-x 3.0正式版及android环境搭建
开发环境是:mac + xcode + eclipse ,在win以下的环境和这个都是一样的,唯一不一样的就是环境变量的配置. 以下主要介绍cocos2d-x环境的设置以及android的环境搭建 1 ...
- 侠客博客v1.0 正式版版本发布
欢迎来到本页面,我猜想您一定是带着疑问进来的,那么首先我来介绍一下 侠客博客 这个软件吧.他是一款能帮助SEO人士自动做外链的软件.目标是在未来几个月发展成为类似虫虫一样庞大的外链软件.帮助站长提高网 ...
- cocos2d-x 3.0正式版创建project笔记
cocos2d-x 3.0正式版创建project笔记 不知道Beta版那个高大上的对话框哪里去鸟,正式版又回归到命令行,不知道触碰如此频繁的玩弄追随者的编程习惯是出于什么心理,假设不是为了这个跨平台 ...
- java 7 发布,【UC浏览器】Java平台7.0正式版发布啦
[UC浏览器]Java平台7.0正式版发布啦 UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB.WAP页面浏览,速度快而稳定,页面排版美观:具有网站导航.搜索.下载.个人数据管理等功能,您能 ...
- 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 以及更小的包大小,和更 ...
- iView 一周年了,同时发布了 2.0 正式版,但这只是开始...
两年前,我开始接触 Vue.js 框架,当时就被它的轻量.组件化和友好的 API 所吸引.之后我将 Vue.js 和 Webpack 技术栈引入我的公司(TalkingData)可视化团队,并经过一年 ...
- 一加连续点Android版本号,一加6推送国内首个安卓9.0正式版!刘作虎:一加6T出厂就预装...
原标题:一加6推送国内首个安卓9.0正式版!刘作虎:一加6T出厂就预装 在今年5月份的谷歌2018 I/O开发者大会上,谷歌正式发布了Android P(安卓9.0)的开发者预览版.这次开发者预览版除 ...
- 余承东:华为6G研发还需10年;库克“iPhone 11势头强劲”;TensorFlow 2.0正式版发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
最新文章
- 不同命名空间的对象二进制反序列化问题
- 音视频开发(37)---麦克风阵列语音增强(二)
- mysql+磁盘i+o+优化_浅析MySQL数据库磁盘I/O调整优化
- Java 工程与 Eclipse 高级用法
- [转载] 6.3 cmath--数学函数
- 修改mysql默认字符集为latin1_修改MYSQL默认编码为UTF8
- Ant Design学习——TimePicker
- 计算机系军训口号四句霸气,军训口号 四句 霸气
- App下载的视频导进电脑中生成.mp4文件的方法
- 发邮件+实习+简历+
- linux服务器挂载ntfs u盘,如何在linux下挂载NTFS格式的U盘或硬盘。
- mysql ibatis count_[mysql] mysql-myibatis-整理
- turtle(海龟)库的使用
- iOS 屏幕旋转监听
- java holder详解,Java基础系列18:Holder技术的实现原理分析
- AI黑科技:目前最流行的人工智能换脸软件(FakeAPP/Faceswap/Openfaceswap/Deepfacelab)的简介、对比之详细攻略
- 美信监控易:石油销售公司全省IT一体化运维解决方案
- 联想电脑亮度无法调节,蓝牙无法连接
- PHP处理iso8583报文
- 机器学习数据划分笔记(train_test_split)
热门文章
- Flutter学习 — 创建一个 grid List
- window服务器搭建私有Git详解
- Linux(Fedora 20) EFI 启动Windows出错 \EFI\Microsoft\Boot\bootmgfw.efi is missing
- C# 屏蔽windows功能键
- 一些简单的二维数学的算法。
- OPCServer:使用Matrikon OPC Server Simulation
- iOS (导航条)navBar 透明
- 得存一波板子了。。。。
- “我爱淘”冲刺阶段Scrum站立会议3
- priority_queue 优先队列 hdu裸题。