Angular2 学习系列课程(版本分析+快速上手)
对于目前主流的前端框架,当属React和Angular,这两个框架各有优缺点,选择的同事也着实令开发者头疼。 很多人都搞不懂,为什么Google会对Angular2做如此大的改变,可以称得上是一个全新的框架,其实我们可以从以下几点做一个分析:
相信很多人都看过官方的教程,想必都发现了一个问题: 就是想轻易的运行起来angular 2的demo项目并没有那么容易,因为Angular 2的Syntax 采用了最新的ES6标准,而这个标准并没有被广大的浏览器所支持,我们仍需要在运行时,对ES6语法进行转化, 使用最多的转化库,当属babel了, Angular 2支持了多中语法规则,包括TypeScript(这是一个微软发起的javascript语法库,支持面向对象变成), dart, JavaScript(ES6标准), 对于angular团队比较推荐我们使用TypeScript语法,因为TypeScript不需要做任何额外的转化工作,因为在这个框架内默认做了支持, 但我个人还是喜欢ES6的语法,所以下面带大家简单运行一个Angular 2demo小程序。 配置package.json,安装所需要的依赖库: {
"name": "angular2-quickstart","version": "1.0.0","scripts": { "start": "npm run lite","lite": "lite-server" },"license": "ISC","dependencies": { "angular2": "2.0.0-beta.13","es6-shim": "^0.35.0","reflect-metadata": "0.1.2","rxjs": "5.0.0-beta.2","zone.js": "0.6.6" },"devDependencies": { "concurrently": "^2.0.0","lite-server": "^2.1.0" } }
上面我们引入的es6-shim 是一个ES6兼容库, lite-server是一个简单的服务框架,方便我们创建临时的测试服务器。 创建index.html: <html>
<head>
<title>Angular 2 QuickStart</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- 1. Load libraries -->
<!-- IE required polyfill -->
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/rxjs/bundles/Rx.umd.js"></script>
<script src="node_modules/angular2/bundles/angular2-all.umd.js"></script>
<!-- 2. Load our 'modules' -->
<script src='app/app.component.js'></script>
<script src='app/main.js'></script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
导入相关类库,my-app就是我们即将要创建的组件。 创建main.js (function(app) { document.addEventListener('DOMContentLoaded',function() { ng.platform.browser.bootstrap(app.AppComponent); }); })(window.app || (window.app = {}));
用bootstrap启动我们创建的组件。 创建app.component.js (function(app) { app.AppComponent = ng.core.Component({ selector: 'my-app',template: '<h1>My First Angular 2 App</h1>' }) .Class({ constructor: function() {} }); })(window.app || (window.app = {}));
我们用ng.core.Component常见一个组件, 其中selector就是我们要写到html中的element. 总结: 如果你了解一点Angular1.x的bootstrap,可能隐约会感受到Angular2中bootstrap的一些 变化 - 我指的并非代码形式上的变化。 以组件为核心 在Angular1.x中,bootstrap是围绕DOM元素展开的,无论你使用ng-app还是手动执行bootstrap()函数,自举过程是建立在DOM之上的。 而在Angular2中,bootstrap是围绕组件开始的,你定义一个组件,然后启动它。如果没有一个组件, 你甚至都没有办法使用Angular2! 支持多种渲染引擎 以组件而非DOM为核心,意味着Angular2在内核隔离了对DOM的依赖 - DOM仅仅作为一种可选的渲染引擎存在: 上面的图中,DOM Render已经实现,Server Render正在测试,iOS Render和Android Render 是可预料的特性,这很像React了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2
- unexpected element (uri:"", local:
- AngularJS1.6版本中ui-router路由中/#!/的解决方
- 架构师之webservice -endpoiont无法单独启动webs
- angularjs – Angular Karma单元测试:如何在kar
- 关于使用scala的模块方法进行游戏的说明
- AngularJS UI路由器:ui-sref没有更新地址栏中的
- 在UNIX shell脚本中,“#!/ bin/sh”是什么意思?
- scala – 如果条件为真,如何返回?
- ArcGIS Product/version not specified. 解决方案