Angular相關(guān)

1. 在哪個目錄中弥咪,所有外部模塊和文件都存儲在Angular 4中?

Angular4將所有外部模塊和文件存儲在node_modules目錄中纠吴。


2. 如何在Angular 4中包含外部CSS硬鞍?

要在Angular 4中包含外部CSS,請打開.angular-cli.json并在styles數(shù)組中添加css文件路徑呜象。


3. Angular中的路由是什么膳凝?

當(dāng)想要瀏覽應(yīng)用程序的不同頁面但還希望應(yīng)用程序是單頁面應(yīng)用程序時碑隆,可以使用ngRoute模塊恭陡。

此ngRoute模塊可瀏覽應(yīng)用程序的不同頁面,而無需重新加載整個應(yīng)用程序上煤。 應(yīng)包含角度js路由模塊休玩,以使您的應(yīng)用程序?yàn)槁酚勺龊脺?zhǔn)備。

ngRoute作為應(yīng)用程序中的依賴項(xiàng)添加劫狠。 路由引擎捕獲用戶請求的特定URL拴疤,并根據(jù)定義的路由規(guī)則呈現(xiàn)視圖。


4. Angular4中的組件裝飾器是什么独泞?

在開發(fā)版本2及更高版本的角度框架時呐矾,裝飾器是核心概念。 它很快就會成為JavaScript的核心語言功能懦砂。 在Angular4中蜒犯,裝飾器被廣泛使用并且還用于編譯代碼组橄。有4種不同類型的裝飾器:

類裝飾器屬性裝飾器方法裝飾器參數(shù)裝飾器

裝飾器是一個使用前綴@符號調(diào)用的函數(shù),后面緊跟一個類罚随,參數(shù)玉工,方法或?qū)傩浴?裝飾器返回相同的東西,它作為輸入給出淘菩,但是以增強(qiáng)的形式


5. 編寫CLI命令以在Angular4中生成組件遵班。

組件只是簡單的類,在組件裝飾器的幫助下聲明為組件潮改。在Angular CLI命令的幫助下狭郑,創(chuàng)建已經(jīng)可以工作的應(yīng)用程序變得很容易。 “Ng generate”用于生成組件进陡,路由愿阐,服務(wù)和管道。 借助此CLI命令還可以創(chuàng)建簡單的測試shell趾疚。 要在CLI命令的幫助下生成angular4中的組件缨历,需要遵循以下語法 - ng generate component component_name;它生成組件并將組件添加到模塊聲明中


6. angular4的組件目錄結(jié)構(gòu)是什么樣的?

以下是angular4組件目錄結(jié)構(gòu)和模塊中存在的元素 - module.ts - 在此糙麦,聲明了angular模塊辛孵。 使用@NgModule裝飾器初始化angular應(yīng)用程序的不同方面。AppComponent也在其中聲明赡磅。components.ts - 它只是以angular定義組件魄缚,這也是定義app-root扇區(qū)的地方。 title屬性也在組件中聲明焚廊。component.html-它是應(yīng)用程序的模板文件冶匹,代表組件的可視部分。


7. 請使用一個例子解釋說明ngFor指令咆瘟。

ngFor指令為給定迭代器的每個元素實(shí)例化一個模板嚼隘。 ngFor指令的不同局部變量可用于迭代。 ngFor指令甚至可以與HTML元素一起使用袒餐。 它還在DOM中執(zhí)行各種更改飞蛹。 在ngFor指令的幫助下,可以將多個導(dǎo)出值別名化為局部變量灸眼。 它允許在HTML模板中構(gòu)建數(shù)據(jù)表示列表和表卧檐。 以下是借助HTML的ngFor指令示例:({hero.name})


8. 請解釋angular中的屬性綁定或單向綁定。

基本上焰宣,屬性綁定意味著從組件類傳遞數(shù)據(jù)并在視圖中設(shè)置給定元素的值霉囚。 它是一種單向綁定,其中數(shù)據(jù)從組件傳遞到類匕积。 它允許控制從組件到類的元素屬性值盈罐。 angular 的屬性綁定可以通過三種方式進(jìn)行:只要定義的值是字符串逻澳,插值就可以用來定義一個值。圍繞element屬性包裝括號并將其綁定到component屬性是最常見的屬性綁定類型暖呕。第三種方法是在element屬性之前添加bind斜做。


9. 請使用一個例子解釋說明ngif指令。

ngIf是一個內(nèi)置的模板指令湾揽,用于添加或刪除DOM的某些部分瓤逼。 此添加或刪除取決于表達(dá)式是true還是false。

如果表達(dá)式計(jì)算為false库物,則ngIf指令將刪除HTML元素霸旗。如果表達(dá)式被評估為true,則該元素將添加到DOM中戚揭。

語法:

*ngIf=”<condition>”

Js

示例:

<ul *ngFor="let person of people"*ngIf="person.age < 30"><li>{{person.name}}</li></ul>


10. 寫出在angular中指令和組件之間的區(qū)別诱告。

在angular中,元數(shù)據(jù)注釋之間存在區(qū)別民晒。 一些區(qū)別如下:指令用于向現(xiàn)有元素添加行為精居。 而組件用于創(chuàng)建具有附加行為的組件。@directive用于創(chuàng)建指令潜必。 而@component用于創(chuàng)建組件靴姿。指令用于將不同的行為附加到現(xiàn)有DOM元素。在組件的幫助下磁滚,可以將應(yīng)用程序分解為更小的組件铺韧。指令用于創(chuàng)建可重用行為趁矾。 然而,組件用于創(chuàng)建可重用組件督勺。指令不需要視圖格粪。然而魄宏,組件需要通過@view查看


11. 你對隔離單元測試有什么了解悉罕?

顧名思義笼平,單元測試就是測試各個代碼單元。 為了回答一些問題仪芒,隔離被測代碼單元非常重要唁影。 當(dāng)我們使用隔離單元測試時耕陷,我們不會被迫創(chuàng)建相關(guān)的部分掂名,如DOM元素進(jìn)行排序。 借助隔離的單元測試哟沫,實(shí)現(xiàn)一切變得更加容易饺蔑。 為了模擬請求,還提供了依賴注入嗜诀。 可以單獨(dú)測試單個排序功能猾警。 而且不僅是排序功能孔祸,任何功能都可以單獨(dú)測試


12. 在angular中你對服務(wù)有什么了解?

angular中的服務(wù)用于組織和共享應(yīng)用程序中的代碼发皿。 這些是在依賴注入的幫助下連接在一起的合適對象崔慧。 angular服務(wù)被懶惰地實(shí)例化。 僅當(dāng)應(yīng)用程序組件依賴于它時穴墅,該服務(wù)才由angular實(shí)例化惶室。 在angular中,可以制作新服務(wù)玄货,甚至可以在其他內(nèi)置服務(wù)中使用皇钞。 angular中存在30多種內(nèi)置服務(wù)


13.什么是Angular?

Angular是基于typescript編程語言的松捉,開源的網(wǎng)絡(luò)應(yīng)用開發(fā)框架夹界。是由谷歌倡導(dǎo)開發(fā)和維護(hù)的。它使用簡單隘世,功能強(qiáng)大可柿,可以快速搭建前端網(wǎng)絡(luò)應(yīng)用。它提供了很多非常優(yōu)秀的功能丙者,比如說聲明性的模板趾痘,依賴注入,端到端的工具蔓钟,等等可以為網(wǎng)絡(luò)應(yīng)用開發(fā)提供便利永票。


14、解釋Angular 2應(yīng)用程序的生命周期hooks是什么滥沫?

Angular 2組件/指令具有生命周期事件侣集,是由@angular/core管理的。@angular/core會創(chuàng)建組件兰绣,渲染它世分,創(chuàng)建并呈現(xiàn)它的后代。當(dāng)@angular/core的數(shù)據(jù)綁定屬性更改時缀辩,處理就會更改臭埋,在從DOM中刪除其模板之前,就會銷毀掉它臀玄。Angular提供了一組生命周期hooks(特殊事件)瓢阴,可以被分接到生命周期中,并在需要時執(zhí)行操作健无。構(gòu)造函數(shù)會在所有生命周期事件之前執(zhí)行荣恐。每個接口都有一個前綴為ng的hook方法。例如,ngOnint界面的OnInit方法叠穆,這個方法必須在組件中實(shí)現(xiàn)少漆。


15、事件發(fā)射器如何在Angular 2中工作的硼被?

Angular 2不具有雙向digest cycle示损,這是與Angular 1不同的。在Angular2中嚷硫,組件中發(fā)生的任何改變總是從當(dāng)前組件傳播到其所有子組件中屎媳。如果一個子組件的更改需要反映到其父組件的層次結(jié)構(gòu)中,我們可以通過使用事件發(fā)射器api來發(fā)出事件论巍。簡而言之烛谊,EventEmitter是在@ angular/core模塊中定義的類,由組件和指令使用嘉汰,用來發(fā)出自定義事件丹禀。


16、如何優(yōu)化Angular 2應(yīng)用程序來獲得更好的性能鞋怀?

優(yōu)化取決于應(yīng)用程序的類型和大小以及許多其他因素双泪。一般來說,在優(yōu)化Angular 2應(yīng)用程序時要考慮以下幾點(diǎn):

1)考慮AOT編譯密似。

2)確保應(yīng)用程序已經(jīng)經(jīng)過了捆綁焙矛,uglify和tree shaking。

3)確保應(yīng)用程序不存在不必要的import語句残腌。

4)確保應(yīng)用中已經(jīng)移除了不使用的第三方庫村斟。

5)所有dependencies 和dev-dependencies都是明確分離的。

6)如果應(yīng)用程序較大時抛猫,我會考慮延遲加載而不是完全捆綁的應(yīng)用程序蟆盹。


17、什么是Shadow DOM闺金?它如何幫助Angular 2更好地執(zhí)行逾滥?

Shadow DOM是HTML規(guī)范的一部分,它允許開發(fā)人員封裝自己的HTML標(biāo)記败匹,CSS樣式和JavaScript寨昙。Shadow DOM以及其它一些技術(shù),使開發(fā)人員能夠像<audio>標(biāo)簽一樣構(gòu)建自己的一級標(biāo)簽掀亩,Web組件和API舔哪。總的來說归榕,這些新的標(biāo)簽和API被稱為Web組件尸红。Shadow DOM通過提供了更好的關(guān)注分離吱涉,通過其它的HTML DOM元素實(shí)現(xiàn)了更少的樣式與腳本的沖突刹泄。

因?yàn)閟hadow DOM本質(zhì)上是靜態(tài)的外里,同時也是開發(fā)人員無法訪問的,所以它是一個很好的候選對象特石。因?yàn)樗彺娴腄OM將在瀏覽器中呈現(xiàn)得更快盅蝗,并提供更好的性能。此外姆蘸,還可以相對很好地管理shadow DOM墩莫,同時檢測Angular 2應(yīng)用的改變,并且可以有效地管理視圖的重新繪制逞敷。


18狂秦、service怎么使用?

AngularJS中你可以創(chuàng)建自己的服務(wù)推捐,或使用內(nèi)建服務(wù)裂问。

使用Module的provider方法

使用Module的factory方法

使用Module的service方法

三種方法的比較

需要在config中進(jìn)行全局配置的話,只能選擇provider方法牛柒,factory和service是使用比較頻繁的創(chuàng)建服務(wù)的方法堪簿。

它們之間的唯一區(qū)別是:service方法用于注入的結(jié)果通常是new出來的對象,factory方法注入的結(jié)果通常是一系列的functions皮壁;

provider是創(chuàng)建服務(wù)最為復(fù)雜的方法椭更,除非你需要創(chuàng)建一個可以復(fù)用的代碼段并且需要進(jìn)行全局配置,才需要使用provider創(chuàng)建蛾魄;

所有具有特定性目的的對象都是通過factory方法去創(chuàng)建虑瀑。


19.Aangular中組件之間通信的方式

Props 父傳子

1.調(diào)用子組件,通過自定義屬性傳值

2.子組件內(nèi)部通過Input來接收屬性的值

子傳父

1.在父組件中定義一個有參數(shù)的方法

2.調(diào)用子組件時,綁定自定義事件和上一步方法

3.子組件內(nèi)部通過Output和EventEmitter來觸發(fā)事件并傳值.


22.Angualr的八大組成部分并簡單描述

答案:model是Angular開發(fā)中的基本單位,是一個容器,可以包含組件、指令滴须、管道等

Components是可被反復(fù)使用的帶有特定功能的視圖

Templates? 是經(jīng)過指令和管道缴川、組件等增強(qiáng)過的html

Bindings? ? 結(jié)合著事件綁定? 屬性綁定? 雙向數(shù)據(jù)綁定等擴(kuò)展html的功能

Directives分為結(jié)構(gòu)性和屬性型指令還有其他模塊中比如路由模塊中的指令等,主要是增強(qiáng)html.

Pipes? ? 可以對數(shù)據(jù)做一個篩選、過濾描馅、格式化從而得到目的數(shù)據(jù)

Service? 將組件把夸、應(yīng)用中的可共用的部分,比如數(shù)據(jù)或者方法等? 封裝成服務(wù)以方便服用

DependencyInjection? 依賴注入


23.Angular中常見的生命周期的鉤子函數(shù)?

ngOnChanges:當(dāng)Angular設(shè)置其接收當(dāng)前和上一個對象值的數(shù)據(jù)綁定屬性時響應(yīng)。

ngOnInit:在第一個ngOnChange觸發(fā)器之后,初始化組件/指令铭污。這是最常用的方法,用于從后端服務(wù)檢索模板的數(shù)據(jù)恋日。

ngDoCheck:檢測并在Angular上下文發(fā)生變化時執(zhí)行。每次更改檢測運(yùn)行時,會被調(diào)用嘹狞。

ngOnDestroy:在Angular銷毀指令/組件之前消除岂膳。取消訂閱可觀察的對象并脫離事件處理程序,以避免內(nèi)存泄漏。

組件特定的hooks:

ngAfterContentInit:組件內(nèi)容已初始化完成

ngAfterContentChecked:在Angular檢查投影到其視圖中的綁定的外部內(nèi)容之后磅网。

ngAfterViewInit:Angular創(chuàng)建組件的視圖后谈截。

ngAfterViewChecked:在Angular檢查組件視圖的綁定之后


24.Angular中路由的工作原理

Angular應(yīng)用程序具有路由器服務(wù)的單個實(shí)例,并且每當(dāng)URL改變時,相應(yīng)的路由就與路由配置數(shù)組進(jìn)行匹配。在成功匹配時,它會應(yīng)用重定向,此時路由器會構(gòu)建ActivatedRoute對象的樹,同時包含路由器的當(dāng)前狀態(tài)。

在重定向之前,路由器將通過運(yùn)行保護(hù)(CanActivate)來檢查是否允許新的狀態(tài)簸喂。Route Guard只是路由器運(yùn)行來檢查路由授權(quán)的接口方法毙死。保護(hù)運(yùn)行后,它將解析路由數(shù)據(jù)并通過將所需的組件實(shí)例化到<router-outlet></router-outlet>來激活路由器狀態(tài)。


25.解釋rjx在Angular中的使用場景

Rxjs是在微軟所提供的一種的異步處理數(shù)據(jù)的方式,在Angular中處理網(wǎng)絡(luò)通信時用到了喻鳄。

創(chuàng)建一個Observable并subsribe

比如:this.http.get('').subscribe((data)=>{ })

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扼倘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子除呵,更是在濱河造成了極大的恐慌再菊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颜曾,死亡現(xiàn)場離奇詭異纠拔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泛豪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門绿语,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人候址,你說我怎么就攤上這事吕粹。” “怎么了岗仑?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵匹耕,是天一觀的道長。 經(jīng)常有香客問我荠雕,道長稳其,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任炸卑,我火速辦了婚禮既鞠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盖文。我一直安慰自己嘱蛋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布五续。 她就那樣靜靜地躺著洒敏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疙驾。 梳的紋絲不亂的頭發(fā)上凶伙,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音它碎,去河邊找鬼函荣。 笑死显押,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的傻挂。 我是一名探鬼主播乘碑,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼踊谋!你這毒婦竟也來了蝉仇?” 一聲冷哼從身側(cè)響起旋讹,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤殖蚕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沉迹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睦疫,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年鞭呕,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛤育。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡葫松,死狀恐怖瓦糕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腋么,我是刑警寧澤咕娄,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站珊擂,受9級特大地震影響圣勒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摧扇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一圣贸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扛稽,春花似錦吁峻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瞧掺,卻和暖如春耕餐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辟狈。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工肠缔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夏跷,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓明未,卻偏偏與公主長得像槽华,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子趟妥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345