Angular 組件

1.理解組件

組件是一種特殊的指令吸祟,使用更簡單的配置項(xiàng)來構(gòu)建基于組件的應(yīng)用程序架構(gòu)這樣他能簡單地寫app缤沦,通過類似的web Component 或者angular2的樣式。web Component 是一個(gè)規(guī)范。馬上就要成為標(biāo)準(zhǔn)掀抹。
應(yīng)用組件的優(yōu)點(diǎn):
比普通指令配置還簡單
提供更好的默認(rèn)設(shè)置和最好的實(shí)踐
對基于組建的應(yīng)用架構(gòu)更優(yōu)化。
對angular2的升級更平滑伊诵。

不用組建的情況:
對那些在 compile或者pre-link階段要執(zhí)行操作的指令单绑,組件不能用,因?yàn)闊o法到達(dá)那個(gè)階段曹宴。
如果你想定義指令的 priority搂橙,terminal,multi-element笛坦,也不能用区转。
組件只能通過元素標(biāo)簽觸發(fā),其他的只能用命令版扩。

2.創(chuàng)建和配置組件

組件可以用.component 注冊(在 angular.module 創(chuàng)建的module)废离。這個(gè)方法有兩個(gè)參數(shù)
組件名稱
組件配置對象(和指令的區(qū)別,一個(gè)是工廠方法礁芦,一個(gè)是對象)

3.基于組件的應(yīng)用程序架構(gòu)

經(jīng)常說蜻韭,用組件構(gòu)建基于組件的應(yīng)用程序簡單方便。
組件只控制視圖和數(shù)據(jù):組件永遠(yuǎn)不應(yīng)該修改作用域之外的DOM或數(shù)據(jù)柿扣。在angular中可以任意修改任何地方的數(shù)據(jù)肖方,因?yàn)閟cope是原型繼承和觀察的。這個(gè)是實(shí)踐出來的未状,但是俯画,導(dǎo)致的問題是你根本不清楚程序中哪一部分負(fù)責(zé)修改數(shù)據(jù)。
組件有一個(gè)定義很好的公共api--輸入和輸出司草。然而隔離的作用域能力有限艰垂,因?yàn)閍ngular使用雙向綁定。所以如果你傳遞一個(gè)對象到組件埋虹,用這種方式bindings:{item:'='}猜憎,修改一個(gè)屬性,這個(gè)改變就會反射到父級組件里面吨岭。對組件來說拉宗,只有組建自己的數(shù)據(jù)自己才能修改,這樣數(shù)據(jù)一旦修改辣辫,就可以很容易找到是誰修改的旦事。基于這個(gè)原因急灭,組件應(yīng)該遵循一些簡單的規(guī)范: .輸入應(yīng)該使用 < 和 @ bindings. <表示單向綁定姐浮,和 = 的區(qū)別是單向綁定的不被watch。這樣葬馋,你在內(nèi)部修改的屬性不會更新父級scope卖鲤。普遍的規(guī)則是永遠(yuǎn)不要改變scope中的對象或者數(shù)組屬性肾扰。@bindings 用在輸入時(shí)字符串,尤其是這個(gè)值不會改變的情況蛋逾。

    bindings:{            
      hero: '<',            
      comment: '@'    
 }
 //輸入 & 符號綁定集晚。來應(yīng)用外部回調(diào)函數(shù)
    bindings:{            
      onDelete: '&',          
      onUpdate: '&'     
 }
    //代替操作輸入數(shù)據(jù),組件調(diào)用正確的輸出事件和改變的數(shù)據(jù)区匣,對刪除來說偷拔,組件不會刪除 hero自己,而是會通過事件發(fā)回自己的組件亏钩。
     <!-- note that we use kebab-case for bindings in the template as usual -->     
     <editable-field on-update="$ctrl.update('location', value)"></editable-field>
    <button ng-click="$ctrl.onDelete({hero: $ctrl.hero})">Delete</button>

組件有一個(gè)很好的聲明之后莲绰。每個(gè)組件都實(shí)現(xiàn)了生命周期鉤子。這些鉤子就是這個(gè)組件在某個(gè)生命周期調(diào)用的方法姑丑。組件實(shí)現(xiàn)了下面的一些鉤子方法:

. $onInit() --

一個(gè)應(yīng)用程序是一個(gè)組件的樹 理想情況下蛤签,整個(gè)程序都應(yīng)是一個(gè)組件樹。這個(gè)樹定義了很清晰的輸入和輸出栅哀。并且縮減雙向綁定到最少震肮,這樣組件的數(shù)據(jù)和狀態(tài)更清晰,能很好預(yù)測昌屉、判斷钙蒙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市间驮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌马昨,老刑警劉巖竞帽,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鸿捧,居然都是意外死亡屹篓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門匙奴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堆巧,“玉大人,你說我怎么就攤上這事泼菌〉簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵哗伯,是天一觀的道長荒揣。 經(jīng)常有香客問我,道長焊刹,這世上最難降的妖魔是什么系任? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任恳蹲,我火速辦了婚禮,結(jié)果婚禮上俩滥,老公的妹妹穿的比我還像新娘嘉蕾。我一直安慰自己,他們只是感情好霜旧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布错忱。 她就那樣靜靜地躺著,像睡著了一般颁糟。 火紅的嫁衣襯著肌膚如雪航背。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天棱貌,我揣著相機(jī)與錄音玖媚,去河邊找鬼。 笑死婚脱,一個(gè)胖子當(dāng)著我的面吹牛今魔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播障贸,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼错森,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篮洁?” 一聲冷哼從身側(cè)響起涩维,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袁波,沒想到半個(gè)月后瓦阐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡篷牌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年睡蟋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枷颊。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戳杀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夭苗,到底是詐尸還是另有隱情信卡,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布听诸,位于F島的核電站坐求,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏晌梨。R本人自食惡果不足惜桥嗤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一须妻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泛领,春花似錦荒吏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锡宋,卻和暖如春儡湾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背执俩。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工徐钠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人役首。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓尝丐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衡奥。 傳聞我的和親對象是個(gè)殘疾皇子爹袁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.理解組件 組件是一種特殊的指令,使用更簡單的配置項(xiàng)來構(gòu)建基于組件的應(yīng)用程序架構(gòu)這樣他能簡單地寫app矮固,通過類似...
    梧桐葉_閱讀 714評論 1 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理失息,服務(wù)發(fā)現(xiàn),斷路器档址,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • Angular組件 一:組件基礎(chǔ) 1:什么是組件根时? 組件(Component)是構(gòu)成Angular應(yīng)用的基礎(chǔ)和核心...
    真的稻城閱讀 4,315評論 3 6
  • 上次我們講完了angular自定義指令,今天就來學(xué)習(xí)一下angular是如何實(shí)現(xiàn)數(shù)據(jù)流動和組件通信的辰晕,當(dāng)然服務(wù)也是...
    我是上帝可愛多閱讀 1,951評論 0 7
  • 1.背景介紹 Angular組件的必備元素 1.組件元數(shù)據(jù)裝飾器:@Component() 告訴angular如何...
    我叫于搞吧閱讀 1,557評論 0 3