日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular2 从搭建环境到开发

發布時間:2024/4/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular2 从搭建环境到开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Angular2 的發布帶來了一陣熱議,很久之前就在籌備了,當時的官方答復就是徹底推翻重寫,問世之后大家的呼聲就是學習成本太高,雖然去掉了 1.x 里的一部分概念,但是加進了 typescript,雖然不強制使用,但是我推薦大家都試一試,畢竟此次改版是谷歌和微軟兩大家的產物。

對于會部署環境的可以嘗試本文最后一節加入 Angular material2 ,個人認為對高度個性化的項目不推薦使用,對企業級的 CMS 省去了寫樣式的時間,直接開始正文。

Angular-CLI

說到 cli 大家不陌生,沒出一個框架都會有對應的 cli ,俗稱腳手架。angular2 本身提供了起步項目 angular2-quickstart,我嘗試了一下,發現不是很好用,其它的大部分擴展需要自行安裝,之后看了一下 angular-cli 部署簡單易用,還提供了快捷搭建項目的目錄。

Github地址: https://github.com/angular/an...

我就簡單說下 Github 里的文檔吧,細部的大家擴展閱讀。

安裝

首先,最好先升級 node 到 6.x 可以避免 node 版本過低帶來的不必要的麻煩。

npm install -g angular-cli

用法

ng --help

查看所有用法

創建本地開發環境生成和運行angular2項目

ng new PROJECT_NAME cd PROJECT_NAME ng serve

PROJECT_NAME 是你自己的項目名

部署成功后不報錯的情況下到瀏覽器 http://localhost:4200/,修改項目中文件后會自動部署

您可以配置默認的 HTTP 端口和一個 LiveReload server 用 --, 形如:

ng serve --host 0.0.0.0 --port 4201 --live-reload-port 49153

生成組件、指令、管道和服務

命令以 ng generate 開頭,可以縮寫為 ng g,下面給出創建 component 的幾種方式。

ng generate component my-new-component ng g component my-new-component # using the alias# components support relative path generation # if in the directory src/app/feature/ and you run ng g component new-cmp # your component will be generated in src/app/feature/new-cmp # but if you were to run ng g component ../newer-cmp # your component will be generated in src/app/newer-cmp

下表里是所有的命令:

ScaffoldUsage
Componentng g component my-new-component
Directiveng g directive my-new-directive
Pipeng g pipe my-new-pipe
Serviceng g service my-new-service
Classng g class my-new-class
Interfaceng g interface my-new-interface
Enumng g enum my-new-enum
Moduleng g module my-module

創建路由

這里 cli 暫時禁用了創建路由,新的路由生成器即將到來,您可以在這里閱讀新路由器的官方文檔:https://angular.io/docs/ts/la...

建立一個 build

ng build

會生成到 dist/ 目錄下,其它關于測試,配置文件請大家去 Github 仔細閱讀,這里只給最基本的搭建流程。

組件實戰

看到這你可能已經開始嘗試了,創建項目的步驟相信大家參照上文可以輕松解決,這里我先嘗試創建一個 component,命令如下。

ng g component nav

這里我創建了一個 nav 組件。執行成功后,后臺會自動部署。我們看一下文件目錄有什么改變

多了一個叫做 nav 的文件夾,看一看文件目錄

我們發現與項目創建時自帶的 app component 目錄結構相同,內容也大同小異,大家可以嘗試去創建一個自己的組件,組件的樣式可以去對應的 css 文件中修改。

這時我的 app.module.ts 變成了如下

import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http';import { AppComponent } from './app.component'; import { NavComponent } from './nav/nav.component';@NgModule({declarations: [AppComponent,NavComponent],imports: [BrowserModule,FormsModule,HttpModule,],providers: [],bootstrap: [AppComponent] }) export class AppModule { }

這里不難看出全局自動引入了 nav.component 組件。我們現在關心的問題是組件之間的引用和數據傳輸,這里為了簡單起見,只給引入的方法,而數據傳輸、路由機制這里不做解釋大家自行官網。

下面說一下 app 內引入 nav 組件,只需要改變 app.component.html 如下。

<h1 class="title">{{title}} </h1> <app-nav></app-nav>

這里的 class 在對應的 app.component.css 如下

.title {font-size: 100px; }

這時頁面自動刷新字號變大 ,那么這里的 app-nav 標簽從哪里得到的呢?

我們去 nav.component.ts 里看一眼

import { Component, OnInit } from '@angular/core';@Component({selector: 'app-nav',templateUrl: './nav.component.html',styleUrls: ['./nav.component.css'] }) export class NavComponent implements OnInit {constructor() { }ngOnInit() {}}

這里的 selector: 'app-nav' 說明我們的選擇器選擇的是 app-nav 標簽,同樣的可以通過 [app-nav] 選擇屬性。

注:這里 selector 類似 css 中的選擇器,大家也可以根據 1.x 中的 directive 來理解這里的組件

此時頁面會呈現成這樣

好,到這里簡單的組件引用已經實現。

引入 Angular material2

文章開頭已經闡述了引入 Angular material2 的優點,用過其它組件樣式框架的都明白。

安裝命令

npm install --save @angular/material

在 src/app/app.module.ts 中引入框架

import { MaterialModule } from '@angular/material'; // other imports @NgModule({imports: [MaterialModule.forRoot()],... }) export class PizzaPartyAppModule { }

引入核心和主體風格,較 Angular material 1.x 的改進在于可以選擇不同的色系。具體看文檔鏈接:https://github.com/angular/ma...

我們這里用的是 Angular CLI 這里又可以鉆空子啦,添加下面一行到 style.css,注意是 src 目錄下的文件

@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';

deeppurple-amber 主題顏色是可變的,具體看上文的文檔鏈接。

到這里一直打開控制臺(是個好習慣)的朋友會發現類似下面的報錯。

client:49 [default] J:\workspace\angular2\ts\epimss\node_modules\@angular2-material\slide-toggle\slide-toggle.d.ts:67:19 Cannot find name 'HammerInput'.client:49 [default] J:\workspace\angular2\ts\epimss\node_modules\@angular2-material\core\gestures\MdGestureConfig.d.ts:4:39 Cannot find name 'HammerManager'.

文檔也給出了解釋,因為框架中 md-slide-toggle 和 md-slider 兩個組件依賴外部第三方組件 HammerJS 需要額外的配置。

我們不急著用文檔給的 npm 或引入 cdn 路徑,因為親測還是會報錯,可能我引入方式有誤,為了大家少走彎路直接給親測有效的方法

我們先去命令行工具運行 npm i --save-dev @types/hammerjs

然后編輯 tsconfig.json 文件將 hammerjs 添加到 types 下

"types": ["jasmine", "hammerjs" ]

到這里發現頁面自動刷新后報錯消失了,如果需要字體圖標可以在 src/index.html 中引入

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

目前為止,整個 Angular material2 已經整裝待發。全部語法看這里:https://github.com/angular/ma...

我們嘗試著添加多個按鈕組件測試一下,修改 app.component.html 文件,完整代碼如下

<h1 class="title">{{title}} </h1> <app-nav></app-nav><button md-button>FLAT</button> <button md-raised-button>RAISED</button> <button md-icon-button><md-icon class="md-24">favorite</md-icon> </button> <button md-fab><md-icon class="md-24">add</md-icon> </button> <button md-mini-fab><md-icon class="md-24">add</md-icon> </button> <br/> <br/><button md-raised-button color="primary">PRIMARY</button> <button md-raised-button color="accent">ACCENT</button> <button md-raised-button color="warn">WARN</button> <br/> <br/><button md-button disabled>OFF</button> <button md-raised-button [disabled]="isDisabled">OFF</button> <button md-mini-fab [disabled]="isDisabled"><md-icon>check</md-icon></button>

沒問題這里手懶不寫布局樣式了,直接給 br 換行大家方便看些,待頁面部署完成后我們會看到以下效果

炫酷的組件,更多組件語法參考上面給的鏈接,到這里相信大家學習 angular2 的信心倍增,真對已有組件可以完成快速開發,下一步就是大家去 Angular2 官網看其它概念的時候啦,處理數據實現與后端對接。項目上線,大功告成。

總結

orange 最近也是在學習新技術,更底層框架方面的知識還再學習,當今前端框架層出不窮,不要盲從,要根據公司需求和員工的工作經驗選擇框架,真說到性能方面哪個框架快的話,我雖然沒測試過,但我確定 React、Vue、Angular2 幾個之間相差無幾,除非在實現的時候代碼存在問題,因為這幾個框架都經過了大型項目的考驗。

文章出自 orange 的 個人博客 http://orangexc.xyz/

總結

以上是生活随笔為你收集整理的Angular2 从搭建环境到开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。