1. 程式人生 > >Angular與AngularJS區別變化

Angular與AngularJS區別變化

1、angular2.0以後與react和vue的區別


命名變化,angular2以後官方命名為angular,而2.0以前版本稱為angularjs


改變:

AngularJS 的特性和優點:angualr中全部被繼承並且發揚光大

1、模板功能強大豐富:宣告式的,自帶很多指令使angularJS擁有了強大的資料繫結能力。不需要自己用jQuery操作dom,只需要更改物件。

2、比較完善的前端mvc框架

3、引入了java的概念:依賴注入單元測試等等,很容易寫出可複用的程式碼,

AngualrJS中的問題:

1、效能問題:資料改變通過髒檢查專案完成,數量越多效能越低。

                       在angular中預設的繫結方式是單項資料繫結,其次檢查機制被完全重寫。

2、簡單的路由功能:ng-view只能有一個不能巢狀很多的檢視,

                       在angular中路由模組變成了核心模組

3、作用域:在angular中沒有$scpoe,原生的事件可以直接繫結。

4、表單驗證:

5、JavaScript:面向物件開發並不足夠,angular中使用typescript,是帶有es6的一個超集。帶有完善的型別系統。

6、學習成本:angular的核心就是元件,angularJS核心很多

Angular新特性:

全新的Angular CLI 

伺服器端渲染

移動和桌面得相容



1、建立新專案

ng new  專案名稱

2、啟動服務

ng serve --open

3、typescript

與JavaScript不同點:

  • 型別宣告

myVar:string="hello"

myVar:boolean=true

myVar:any   可以是任何型別

  • 類的概念:
class Car{

    wheels:numberr=4

 drive{

   console.log('孟小佳')

   }
}
mycar:Car=new Car

建構函式:當類被創建出來的時候會立即執行

class Car{

    speed:number;

 constructor{mph:number

   this.speed=mph;

   }
}
mycar:Car=new Car(70)
  • 可見度

public、protected(當前類和子類)、private(當前類)

  • 箭頭函式

1.()=>相當於function()

2.()=>{something}

4、資料繫結

模板繫結只能使用字串但是屬性繫結可以使用表示式。

單項資料繫結:模板繫結(雙花括號{{}})----準備資料:使用資料

屬性繫結:[something]="表示式"

雙向資料繫結:<input [(ngModel)]="person.name" >    <p>{{person.name}}</p>

5、指令

什麼是指令?具備某種能力完成某種任務,在ng2中有是那種型別的指令,分別是元件、屬性和結構指令。

屬性指令:ngClass="類名",改變當前dom結構的樣式,

結構指令:*ngif="表示式"改變當前dom結構

ngClass:主要作用新增一些樣式,

5、pipe實現搜尋

簡單來說管道的作用就是傳輸。

1、內建管道

2、自定義管道  首先建立管道,ng -g pipe guandaomingzi  然後進行管道設定:進入pipe.ts檔案

<form id="filter">
    <lable>Filter Name</lable>
    <input type="text" [(ngModel)]="term" name="first">
</form>

export class FilterPipe implements PipeTransform{
    transform(people:any,term:any):any{
        if(term === undefined)return people;//說明沒有任何匹配
        //如果有匹配就返回people裡的值
        //es6方法filter
        return people.filter(function(person)){
            return person.name.toLowerCase().includes(term.toLowerCase());
            //includes() 方法用來判斷一個數組是否包含一個指定的值,根據情況,如果包含則返回 true,否則返回false。
        } }
}

5、服務service

變當前dom結構,想要使用服務的元件要進行import[],

然後通過這個類建立這個物件,擁有這個物件之後才能使用這個類,在component中新增provide屬性

5、http

類中擁有屬性和方法,

請求:http.get()方法 ,用於從後臺獲取資料。

第三方庫:map()對資料進行對映,(後臺拿到的資料是json資料,無法進行操作,但是可以對物件進行操作。)

操作:subscribe(

(data)=>console.log(data)

)

constructor(private http:Http){}
fetchData(){
    this.http.get('../../public/people.json').subscribe(
        //處理對應的資料
        (data)=>console.log(data)
    )
}

5、請求資料到頁面

藉助第三方庫rxjs  

放到組建中

ngOnInit(){
    this.dataService.fetchData().subscribe(
        (data) => this.people = data
    );
}

5、特點

單頁應用,

方便快捷,高重用性元件