Angular系列學習一:運用Angujar CLI疾速明白Angular項目的一些基本概念和寫法

作者:心恭弘=叶 恭弘
時刻:2018-04-22 09:13

Angular CLI是一個敕令行界面東西,它能夠建立項目、增加文件以及實行一大堆開闢使命,比方測試、打包和宣布,這裏的疾速最先就是基於這個敕令。

最先項如今,你須要先裝置node和npm,然後實行npm install -g @angular/cli裝置Angular CLI。

一:用敕令行新建一個項目

ng new newApp --skip-install

cd newApp

cnpm install

ng serve --open

實行上面的敕令就會自動新建一個Angualr項目,並啟動了項目。

个中–skip-install示意node包先不裝置,我們接着運用cnpm install裝置會快多了。

二:目次組織

如今來看看ng敕令協助我們天生了什麼,也就是項目標目次組織,內里都是干什麼的,先有個大抵相識,你能夠不知道悉數,不過先記住下面幾個個人感覺重要的:

1.src:運用代碼寄存的處所;

2.src/app:你的代碼重要寄存的處所,如許說或許不合適,不過你開闢的時刻,大部份時刻都是在修正這裏的代碼;

3.src/assets:圖片等寄存的處所,構建時會複製到宣布包里;

4.src/main.js:你基礎不會修正它,它是順序的主進口;

5.src/styles.css:特別用的款式寫在對應的處所,背面會說,關於大眾的款式就會寫在這裏;

6.karma.conf.js:給Karma的單元測試設置,當運轉ng test時會用到它。

三:自定義組件

import { Component } from '@angular/core';

@Component({

    selector: 'my-comp',
    
    template: '<ul><li *ngFor='let row of dataList'>ID:{{row.id}}  INFO:{{row.info}}</li></ul>',
    
    styles: [`ul{background-color: antiquewhite;padding-left: 10px;list-style: none;}`]
    
})
export class MyComponent {

    dataList = [
        { id: 1, info: "Angular" },
        { id: 2, info: "React" },
        { id: 3, info: "Vue" }
    ];
    
}

上面就已定義好了一個異常簡樸的組件,不過在運用前,你還須要在模塊中定義,此時就是src/app/app.module.ts中註冊:

import { NgModule } from '@angular/core';

import { MyComponent } from './my.component';

@NgModule({

    declarations: [
        MyComponent
    ]
    
})
......

如今已註冊好了,你就能夠運用了,上面的例子的運用方法很簡樸,就是自定義了一個標籤my-comp,和一般的div的用法如出一轍。

須要注重的是,為了輕易檢察,在註冊的例子中我去掉了無關的代碼,實際情況還好有包含啟動,別的組件,效勞等的註冊,你能夠看看敕令行自動天生的別的指令,這裏重要照樣申明更重要的東西,下同。

相似AngularJS,Angular的selector除了上面的自定義標籤,另有別的:

1.selector: ‘element-name’//自定義標籤選擇器;

2.selector: ‘.class’//款式選擇器;

3.selector: ‘[attribute]’//屬性選擇器;

4.selector: ‘[attribute=value]’//屬性值選擇器;

5.selector: ‘:not(sub_selector)’//取反選擇器;

6.selector: ‘selector1, selector2’//多種選擇器。

四:自定義效勞

和組件一樣,我們先來定義一個效勞。

import { Injectable } from '@angular/core';

export class DataFormat { 
    id: number; 
    info: string; 
}

@Injectable()
export class MyServ {

    getData(): DataFormat[] {
        return [
            { id: 1, info: "Angular" }, 
            { id: 2, info: "React" }, 
            { id: 3, info: "Vue" }
        ];
    }
    
}

接着來註冊它,效勞和組件在註冊上有點差別,我們如今先註冊在主組件上面吧,默許就是在arc/app/app.component.ts文件中註冊:

import { Component } from '@angular/core';

import { MyServ } from './my.service';

@Component({

    providers: [MyServ]
    
})

效勞的運用也很簡樸,我們這裏用組織函數來演示一下:

import { MyServ } from './my.service';
......

export class MyComponent {

    dataList: any[];
    
    constructor(private demoService: MyServ) {
    
      this.dataList = this.demoService.getData();
      
    }
    
}

還記得自定義組件的代碼嗎?我們就在个中演示了效勞的用法,上面只給出了修正的部份代碼。

五:路由的運用

我們這裏給出路由的一個簡樸用法,詳細的細節和上面的相似,會零丁再去議論,這篇文章的目標就是疾速入門運用。

為了輕易演示,我們默許已定義好了二個組件:MyComponent和My2Component。

起首須要肯定index.html頁面的head標籤中定義好了<base href=”/”>或動態天生該元素的劇本。

我們先在src/app/app.module.ts中註冊路由:

......
import { RouterModule } from '@angular/router';

@NgModule({

    declarations: [MyComponent,My2Component],
    
    imports: [
    
        RouterModule.forRoot([
        
            {path: 'my',component: MyComponent},
            
            {path: 'my2',component: My2Component}
            
        ])
    ]
    ......
})
......

運用就很簡樸了:

<a routerLink="/my">toMycomp</a>

<a routerLink="/my2">toMy2comp</a>

<router-outlet></router-outlet>

點擊toMycomp或許toMy2comp就會跳轉對應的路由設置的組件了。

六:HTTP

因為@angular/http庫中的HttpModule保存着http相干的效勞,須要先引入進來(這裡是在src/app/app.module.ts中引入):

import { HttpModule }    from '@angular/http';

@NgModule({

    imports: [HttpModule]
    
})
......

如今,http就是一個效勞,下面簡樸演示一種用法:

......
import { Http } from '@angular/http';
......

    constructor(private http: Http) {
    
        http.get('assets/XXX.json').forEach(function (data) {
        
            console.log(data['_body']);
            
        });
        
    }
    
......
    原文作者:心恭弘=叶 恭弘
    原文地址: https://segmentfault.com/a/1190000014523455
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞