Angular2.0快速開始

cd7b 9年前發布 | 272K 次閱讀 Angular2 Web框架 angularjs

目前Angular2.0開發者預覽版已經 發布,和Angular1.x相比,發生了很多顛覆性的變化,隨后Angular2團隊在官網上給出了一個5分鐘快速開始的教程,用于編寫一個hello world級別的ng2的web應用,但是由于其中涉及到的新東西比較多,變化較大,僅僅是搭建環境并運行這個環節就不是那么容易掌握,本文就是以 Angular2官方的quickstart教程為基礎,講解如何搭建本地運行環境并編寫一個hello world的ng2應用。

首先,關于Angular2.0是什么以及有什么新特性,這里不做贅述,只進行淺顯的陳述意義不大,隨后我會寫一系列Angular2的文章來詳述這個話題,本文要做的是讓大家快速在本地搭建Angular2的開發環境并編寫應用。

步驟一:通過git clone Angular2.0官方的一個hello world種子項目

首先在本地創建一個文件夾,叫做ng2

mkdir ng2
cd ng2

在這個文件夾中git clone

git clone https://github.com/angular/quickstart.git hello2ng2

這時候就會將這個種子項目克隆到本地

在這個項目中,包含了如下的一些庫:

1)能夠編譯為ES5的Angular2的庫;

2)能夠編譯為ES5的rtts_assert庫,這個庫主要是一個JS運行時的類型斷言庫,它主要用在Traceur中,Traceur用來將ES6代碼轉化為瀏覽器或者Node可以理解的ES5代碼;

3)ES6的shim庫,Angular是為下一代web應用開發而設計的,所以它的內部腳本語言是使用ES6,但是由于目前各種環境(瀏覽器或 Node)暫不支持ES6的代碼,所以需要一些shim機制讓ES6寫的代碼能夠轉化為ES5形式并可以正常運行在瀏覽器中,在這個項目中,這些庫包括Traceur(能夠將ES6轉化為ES5的編譯器),ES6的模塊加載器,SystemJs(通用模塊加載器),zone.js以及通過Traceur的配置項定義的元數據注解。

關于上面的這些庫,在目前情況下沒有必要深究,它們的功能就是為了讓你在現有條件下(ES6還不被廣泛支持)能夠編寫Angular2代碼并運行在自己的環境上。

 Angular2.0快速開始

到目前為止這個項目的文件結構應該是這樣的(app目錄是我自己后來加上去的,作用后面會講)。

可以看到在項目根目錄下有一個gulpfile.js,說明這個種子項目是采用gulp作為構建工具的,所以要安裝gulp.

npm install -g gulp

接著在項目的根目錄hello2ng2目錄下安裝項目依賴項

npm install

這一步需要注意的是,由于網絡原因,很可能失敗,所以需要FQ或者使用V*N。

上一步成功之后,使用gulp中配置的默認task重新生成Angular2的項目和他的依賴項。

gulp

到目前為止,我們算是已經搭建好了Angular2的環境,下面可以編寫代碼了。

由于Angular2.0是采用ES6編寫,所以需要對ES6有一個大致了解,這里推薦兩個學習地址,ES6新特性ES6入門

接著我們在項目根目錄hello2ng2下建立一個app目錄,用于存放我們編寫的代碼,然后創建一個index.html,內容如
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Angular 2 Hello World!</title>
    <script src="../dist/es6-shim.js"></script>
</head>
<body>
<my-app></my-app>
<script>
    System.paths={
        'angular2/*':'../angular2/*.js',
        'rtts_assert/*':'../rtts_assert/*.js',
        'app':'app.es6'
    };
    System.import('app');
</script>
</body>
</html>

在第6行加入es6的shim庫文件,然后在11到15行通過配置SystemJS的一些加載項來加載外部js文件,包括angular2相關js 文件,rtts_assert庫相關js文件,以及后面我們自己編寫的app.es6文件,然后加載完成后在第16行開始這個application。第 9行實際上就是我們使用Angular2編寫的一個叫做my-app的組件,是不是很像Angular1.x中的directive?當然,在 Angular2中編寫組件更為簡單。

接著在app目錄下新建一個app.es6文件,后綴名為es6表明它采用es6語法,文件內容如下:

import {Component, Template, bootstrap} from 'angular2/angular2';

// Annotation section @Component({ selector: 'my-app' }) @Template({ inline: '<h1>Hello {{ name }}</h1>' })

// Component controller class MyAppComponent { constructor() { this.name = 'World!'; } }

bootstrap(MyAppComponent);</pre>

第一行采用es6的模塊加載機制從angular2中加載三個模塊,分別是Component,Template以及bootstrap(這里的 bootstrap和推ter的BootStrap沒有關系,這里是用來啟動Angular2應用的一個模塊,在Angular1.x中也是有這個 API的,只不過我們更愿意使用自動啟動的ng-app).

第4行和第7行使用注解(Annotation)來表明my-app這個組件的一些屬性,第5行是它的選擇器,第8行是它的模板即需要渲染成的 html字符串。注解在ES6中是沒有的,嚴格地講,這個app.es6文件采用放入的是AtScript腳本,它是ES6的一個超集,在ES6的基礎上 添加了一些新的特性(比如說注解),通過編譯之后能夠生成ES6代碼,它簡化了ES6的代碼的寫法,它是Angular2團隊專門為Angular研發 的。關于它的介紹這里有一篇文章,然后在第12行到第16行定義了一個類來作為my-app這個組件的controller,相比于1,你會發現代碼更為簡潔,更為模塊化和清晰(一個組件對應一個類),然后在第18行啟動這個組件。它的作用就是在頁面上渲染一個hello world的h1標題。

到目前為止,我們已經編寫了一個完整的組件,在Angular2中編寫組件就是這么容易(想想Angular1.x中封裝為directive 那種方式,竊喜啊),接下來可以運行這個ng2的web app了.

運行需要web服務器,在node環境下,安裝一個簡易的web服務器

進入到項目根目錄,安裝web服務器并啟動它

npm install http-server -g
http-server

然后就可以在本地http://localhost:8080/app/下查看結果了。

 Angular2.0快速開始

到目前為止,我們已經能夠編寫并運行一個Angular2的應用程序了,在后面,我會寫一系列文章來揭示Angular2到底有哪些新特性以及如何使用。

來自: http://www.cnblogs.com/myzhibie/p/4667210.html

 本文由用戶 cd7b 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!