第三章:Angular的工作原理
- Angular應(yīng)用是由組件構(gòu)成的
- 當開發(fā)新的Angular應(yīng)用時,先畫出原型圖,然后拆分成組件
- 因為我們經(jīng)常用到組件啊片,所以有必要對組件進行進一步的研究记靡,每個組件都由三個部分組成:
- 組件注解
- 視圖
- 控制器
- 組件注解
-
@component
注解是對組件進行配置的地方,一般來說咸灿,@component
會配置你的組件如何與外界交互 - Angular組件的一個核心特性:輸入/輸出。
方括號<products-list [productList]="products" (onProductSelected)="productWasSelected($event)"> </products-list>
[ ]
用來傳遞輸入侮叮,圓括號( )
用來處理輸出
-
- 關(guān)于數(shù)據(jù)架構(gòu)的一點說明
在AngularJS中避矢,默認選項是雙向綁定。雙向綁定在開發(fā)的起步階段非常好用:控制器保存數(shù)據(jù)囊榜,表單直接修改數(shù)據(jù)审胸,視圖顯示數(shù)據(jù)。
不過雙向綁定的問題是卸勺,它經(jīng)常導致整個應(yīng)用出現(xiàn)級聯(lián)效應(yīng)砂沛。隨著項目規(guī)模的擴大,我們越來越難于追蹤數(shù)據(jù)的流向曙求。
雙向綁定的另一個問題是由于我們的數(shù)據(jù)要通過組件下發(fā)碍庵,一般情況下“數(shù)據(jù)結(jié)構(gòu)樹”將不得不與“DOM結(jié)構(gòu)樹”相對應(yīng)映企。但在實踐中,最好把這兩件事分開
處理這種情況的方法之一是創(chuàng)建數(shù)據(jù)服務(wù)
****Service
静浴,這是保存當前數(shù)據(jù)的當例服務(wù)堰氓。當由數(shù)據(jù)變動時,這個服務(wù)就會通知所有相關(guān)的對象苹享。
Angular中推薦的方式時采用一種叫做單項數(shù)據(jù)綁定的方案(在其他一些現(xiàn)代Web開發(fā)框架中也是一樣双絮,例如React)。也就是說富稻,的數(shù)據(jù)只會向下流入組件掷邦。如果你需要改變數(shù)據(jù),就要在頂層觸發(fā)事件椭赋,然后向下liu'zhi