首頁 web前端 js教程 Angular2開發組件步奏詳解

Angular2開發組件步奏詳解

Apr 19, 2018 am 11:35 AM
開發 詳解

這次帶給大家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中文網其它相關文章!

推薦閱讀:

js實作圖片勻速淡入淡出

在JS怎麼實作數字與字串相互轉換

以上是Angular2開發組件步奏詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1653
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1251
29
C# 教程
1224
24
四款值得推薦的AI輔助程式工具 四款值得推薦的AI輔助程式工具 Apr 22, 2024 pm 05:34 PM

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

Win11管理員權限取得詳解 Win11管理員權限取得詳解 Mar 08, 2024 pm 03:06 PM

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

Oracle SQL中的除法運算詳解 Oracle SQL中的除法運算詳解 Mar 10, 2024 am 09:51 AM

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

AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 Apr 07, 2024 am 09:10 AM

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語言開發行動應用程式 Mar 28, 2024 pm 10:00 PM

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

PHP模運算子的作用及用法詳解 PHP模運算子的作用及用法詳解 Mar 19, 2024 pm 04:33 PM

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

Android開發最適合的Linux發行版是哪一個? Android開發最適合的Linux發行版是哪一個? Mar 14, 2024 pm 12:30 PM

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

Go語言前端技術探秘:前端開發新視野 Go語言前端技術探秘:前端開發新視野 Mar 28, 2024 pm 01:06 PM

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

See all articles