初探angular2

Angular2 是一款开源JavaScript库,由Google维护,用来协助单一页面应用程序运行。

Angular2 是 Angular 1.x 的升级版本,性能上得到显著的提高,能很好的支持 Web 开发组件。

Angular2 发布于2016年9月份,它是基于ES6来开发的。

上手一个新的框架,了解的最开始的东西,都是最浅显的。
我的第一个应用如下

查看项目目录

实现项目过程如下
$ mkdir angular-quickstart
$ cd angular-quickstart
创建 package.json 文件

package.json
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "npm run lite",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0",
    "@angular/compiler": "2.0.0",
    "@angular/core": "2.0.0",
    "@angular/forms": "2.0.0",
    "@angular/http": "2.0.0",
    "@angular/platform-browser": "2.0.0",
    "@angular/platform-browser-dynamic": "2.0.0",
    "@angular/router": "3.0.0",
    "@angular/upgrade": "2.0.0",
 
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.23",
 
    "angular2-in-memory-web-api": "0.0.20",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0"
  }
}

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ cnpm install
$ mkdir app
$ cd app

app.component.js
(function(app){
    app.AppComponent=
        ng.core.Component({
            selector:'my-app',
            template:'<h1>我的第一个Angular应用</h1>'
        })
        .Class({
            constructor:function(){}
        })
})(window.app||(window.app={}));

Angular应用都是模块化的,ES5没有内置的模块化系统,可以使用第三方模块系统,然后我们为应用创建独立的命名空间 app,
文件代码可以包裹在 IIFE(立即执行函数表达式)中:

(function(app) {
})(window.app || (window.app = {}));
app.module.js
(function(app) {
    app.AppModule =
      ng.core.NgModule({
        imports: [ ng.platformBrowser.BrowserModule ],
        declarations: [ app.AppComponent ],
        bootstrap: [ app.AppComponent ]
      })
      .Class({
        constructor: function() {}
      });
  })(window.app || (window.app = {}));
main.js
(function(app){
    document.addEventListener('DOMContentLoaded',function(){
    ng.platformBrowserDynamic
      .platformBrowserDynamic()
      .bootstrapModule(app.AppModule);
    });
})(window.app||(window.app={}))

我们需要两样东西来启动应用:

Angular 的 platformBrowserDynamic().bootstrapModule 函数。
上文中提到的应用根模块 AppModule。
接下来创建 index.html,代码如下所示:

index.html
<html>
 
  <head>
    <meta charset="utf-8">
    <title>Angular 2 实例 - 菜鸟教程(runoob.com)</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles.css">
 
    <!-- 1. 载入库 -->
    <!-- IE 需要 polyfill -->
    <script src="node_modules/core-js/client/shim.min.js"></script>
 
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
 
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/@angular/core/bundles/core.umd.js"></script>
    <script src="node_modules/@angular/common/bundles/common.umd.js"></script>
    <script src="node_modules/@angular/compiler/bundles/compiler.umd.js"></script>
    <script src="node_modules/@angular/platform-browser/bundles/platform-browser.umd.js"></script>
    <script src="node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js"></script>
 
    <!-- 2. 载入 'modules' -->
    <script src='app/app.component.js'></script>
    <script src='app/app.module.js'></script>
    <script src='app/main.js'></script>
 
  </head>
 
  <!-- 3. 显示应用 -->
  <body>
    <my-app>Loading...</my-app>
  </body>
 
</html>

index.html 分析

1、载入我们需要的JavaScript库;
2、载入我们自己的JavaScript文件,注意顺序;
3、我们在标签中添加 标签。
执行过程为:当 Angular 在 main.js 中调用 bootstrapModule 函数时,它读取 AppModule 的元数据,在启动组件中找到 AppComponent 并找到 my-app 选择器,
定位到一个名字为 my-app 的元素,然后再这个标签之间的载入内容。
添加一些样式
styles.css 文件代码为

styles.css
h1 {
  color: #369;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 250%;
}
body {
  margin: 2em;
}

最后输入
$ npm start
第二种方法,我们也可以使用angular-cli构建项目应用

初始化命令如下
cnpm install -g @angular/cli
ng new my-app
cd my-app
ng serve --open
ng serve 命令会启动开发服务器,监听文件变化,并在修改这些文件时重新构建此应用。

by本文学习自菜鸟教程 http://www.runoob.com/angularjs2/angularjs2-javascript-setup.html

猜你喜欢

转载自www.cnblogs.com/smart-girl/p/10364370.html