Angular2開發組件步奏詳解
這次帶給大家Angular2開發組件步奏詳解,Angular2開發組件的注意事項有哪些,下面就是實戰案例,一起來看一下。
先簡單講講從ng1到ng2框架下組件的職責與地位:
ng1中的一大特色――指令,分為屬性型、標籤型、css類型和註解型。 其中寫在css類別以及註解中的元件想必多數人都不會去使用,而屬性型指令與標籤型指令則是ng1火遍宇宙的功臣之一。在ng2中,標籤型指令乾脆被分離出來,追隨vue等新興勢力的風格升級並稱為組件,並用來處理所有與視圖(DOM)打交道的事情,包括展示數據與動畫。而屬性型指令則用於完善元件的功能,例如接收使用者輸入、回應使用者點擊等事件。其實ng2中內嵌的許多功能都是屬性型指令――ngFor、ngIf等等,而對於元件來說比較依賴具體的項目,所以跟適合基於項目來使用元件寫出一個個使用者看得見的介面來。同時元件也需要與路由打交道,前端路由可以看成是動態更改DOM,在ng2路由中製定好規則後,其實就是在動態渲染或銷毀不同的元件,以此實現前端頁面的切換。
然後講講筆者前面的項目時如何使用ng2組件搭起一個網站的:
1. 照著官方的做法,每個應用得有一個根組件。
2. 區分前端路由,每個路由條目指向一個元件,每個元件各自渲染一個頁面。
3. 專案擴大,單模組無法滿足業務分類,所以先由根路由引導懶加載各個子模組,然後由子模組的子路由各自指向具體的子元件,並渲染各自的頁面。
4. 著眼於單一子元件渲染的單一頁面,其實可以將一些可重複使用的標籤區塊封裝到一個新的元件裡(例如需要ngFor遍歷的複雜資料項目)。
5. 發現其實有一些元件(例如側邊按鈕或訊息模態框)其實整個專案都可能使用到,得把這些封裝成全域共享的元件。
到現在自己都覺得有一點亂,究其原因,應該是組件這個名稱的問題,因為在ng2框架下,大到路由頁面小到資料條目全都用的元件,聲明方式全都一個模樣,難免會亂。
沒辦法只能自己來給元件繼續細分類別了,筆者於是把ng2的元件分成了四類:
頁面元件
#與路由打交道,只關心匹配路由規則渲染介面,此類元件在宣告時不需要selector 參數(只由路由定位不需要特定標籤)
接收路由參數或resolve數據,盡量不做其他業務互動的請求,且不設Input、Output變數
佈局元件
用於細分頁面的模組若頁面較簡單可以省去直接使用單位元件,必須有具體的selector參數因為要在頁面元件中使用
#不負責獲取路由或resolve數據,且盡量不請求數據而透過Input傳入數據或Output響應事件,所有業務交互請求盡量在佈局組件中完成(不至於像放在頁面組件中那麼亂,且各佈局元件可以做到互不影響)
單位元件
必須有自己的selector ,一般在自己模組中可重複使用,透過各種屬性型指令修飾自身
用於簡化單位層級的重複標籤,例如取得的清單資料中的每個資料項目的介面展示就可以封裝成一個單位元件
-
只負責透過Input傳入資料並顯示,以及透過Output回應事件到外層的佈局元件或頁面元件中處理
共享元件
必須有selector,整個專案都共享的元件,實現比較自由,重在減少整個專案的重複程式碼並方便維護
比較適合的例如訊息彈框,載入進度條等
大部分的屬性型指令,其實功能一般都比較通用,可以與共享元件等同對待,只不過共享元件擁有具體視圖而共享指令只用於實現通用功能
講來講去其實這裡面完全沒有技術難點,只是在暗示一件事――專案目錄安排很重要。
ng2可不認識筆者給它細分的這麼多類型的組件,這些分類是給自己看的,具體的體現就是以這個分類體係得出的一個項目目錄結構 。
筆者為資料夾命名前面有的加上了加號有的加上了減號,也算是自己的一種看似奇怪的目錄結構安排了。
解釋一下就是:最外層這個term代表整個懶加載模組的目錄,裡面加號的目錄下的組件代表是頁面組件,什麼符號都沒有的代表是佈局組件,帶減號的目錄下的組件代表是單位組件,單位組件可能在整個懶加載模組中都使用到,所以直接在懶加載目錄的最外層,而佈局組件都在具體的頁面組件同級目錄下。
總結就是拋開ES6與TypeScript的外表後ng2組件的使用在技術上難點不算多,本文純粹是一點拙劣的經驗之談,當然筆者目前的經驗還遠遠不足,希望在日後的開發以致研究透徹ng2源碼後能有更深的見解。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是Angular2開發組件步奏詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

Windows作業系統是全球最受歡迎的作業系統之一,其新版本Win11備受矚目。在Win11系統中,管理員權限的取得是一個重要的操作,管理員權限可以讓使用者對系統進行更多的操作和設定。本文將詳細介紹在Win11系統中如何取得管理員權限,以及如何有效地管理權限。在Win11系統中,管理員權限分為本機管理員和網域管理員兩種。本機管理員是指具有對本機電腦的完全管理權限

OracleSQL中的除法運算詳解在OracleSQL中,除法運算是一種常見且重要的數學運算運算,用來計算兩個數相除的結果。除法在資料庫查詢中經常用到,因此了解OracleSQL中的除法運算及其用法是資料庫開發人員必備的技能之一。本文將詳細討論OracleSQL中除法運算的相關知識,並提供具體的程式碼範例供讀者參考。一、OracleSQL中的除法運算

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

Go語言開發行動應用程式教學隨著行動應用程式市場的不斷蓬勃發展,越來越多的開發者開始探索如何利用Go語言開發行動應用程式。作為一種簡潔高效的程式語言,Go語言在行動應用開發中也展現了強大的潛力。本文將詳細介紹如何利用Go語言開發行動應用程序,並附上具體的程式碼範例,幫助讀者快速入門並開始開發自己的行動應用程式。一、準備工作在開始之前,我們需要準備好開發環境和工具。首

PHP中的模運算子(%)是用來取得兩個數值相除的餘數的。在本文中,我們將詳細討論模運算子的作用及用法,並提供具體的程式碼範例來幫助讀者更好地理解。 1.模運算子的作用在數學中,當我們將一個整數除以另一個整數時,就會得到一個商和一個餘數。例如,當我們將10除以3時,商數為3,餘數為1。模運算子就是用來取得這個餘數的。 2.模運算子的用法在PHP中,使用%符號來表示模

Android開發是一項繁忙而又令人興奮的工作,而選擇適合的Linux發行版來進行開發則顯得尤為重要。在眾多的Linux發行版中,究竟哪一個最適合Android開發呢?本文將從幾個方面來探討這個問題,並給出具體的程式碼範例。首先,我們來看看目前流行的幾個Linux發行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優點和特點。

Go語言作為一種快速、高效的程式語言,在後端開發領域廣受歡迎。然而,很少有人將Go語言與前端開發聯繫起來。事實上,使用Go語言進行前端開發不僅可以提高效率,還能為開發者帶來全新的視野。本文將探討使用Go語言進行前端開發的可能性,並提供具體的程式碼範例,幫助讀者更了解這一領域。在傳統的前端開發中,通常會使用JavaScript、HTML和CSS來建立使用者介面
