ng-核心特性(模型概念)

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/22/12228032.html
-Advertisement-
Play Games

angular核心特性 很多開發者已經做過非常多的項目,但是當你跟他聊的時候,你很快就會發現他並沒有掌握這門框架的精髓。打幾個比方,當別人提到 Spring 的時候,你的大腦裡面第一個想到一定是 DI、IOC、AOP 這些東西;當別人提到 Hibernate 或者 Mybatis 的時候,你的大腦里 ...


angular核心特性

很多開發者已經做過非常多的項目,但是當你跟他聊的時候,你很快就會發現他並沒有掌握這門框架的精髓。打幾個比方,當別人提到 Spring 的時候,你的大腦裡面第一個想到一定是 DI、IOC、AOP 這些東西;當別人提到 Hibernate 或者 Mybatis 的時候,你的大腦裡面立即會浮現出 ORM 的概念;當別人提到 React 的時候,你想到的應該是 VDom、JSX;當別人提到 jQuery 的時候,你首先想到的應該是$對吧?所以,你可以看到,任何一個成功的框架都有自己獨創的 “概念模型”,或者叫 “核心價值” 也可以。這是框架本身存在的價值,也是你掌握這門框架應該緊扣的主線,而不是上來就陷入到茫茫多的技術細節裡面去

組件(Components)

既然如此,問題就來了,新版本的 Angular 的核心概念是什麼呢?

非常簡單,一切都是圍繞著“組件”( Component )的概念展開的:

組件化

Component(組件)是整個框架的核心,也是終極目標。“組件化”的意義有2個:

  • 第一是分治,因為有了組件之後,我們可以把各種邏輯封裝在組件內部,避免混在一起
  • 第二是復用,封裝成組件之後不僅可以在項目內部復用,而且可以沉澱下來跨項目復用

模塊(Modules)

NgModule(模塊)是組織業務代碼的利器,按照你自己的業務場景,把組件、服務、路由打包到模塊裡面,形成一個個的積木塊,然後再用這些積木塊來搭建出高樓大廈。

模板(Templates)

組件是用來封裝對視圖的操作的,而我們的所謂的視圖其實也就是常規的 HTML 模板:

<!--The content below is only a placeholder and can be replaced.-->
<div style="text-align:center">
  <h1>
    Welcome to {{ title }}!
  </h1>
</div>

元數據(Metadata)

metadata.png

元數據告訴 Angular 如何處理組件類。

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = '你的第一個 Angular 應用';
}

數據綁定(Data binding)

和 Vue.js 一樣,MVVM 思想(數據驅動視圖),通過特殊的 {{}} 語法將數據綁定到 DOM 元素,當數據改變的時候會影響視圖的更新。

指令(Directives)

和 Vue.js 一樣,Angular 擴展了 HTML 語法,增加了一些特殊的屬性指令,例如:

  • *ngFor 迴圈指令
  • *ngIf 條件判斷指令
  • [(ngModel)] 表單控制項雙向綁定指令
  • ...

Services(服務)

服務是一個廣義範疇,包括:值、函數,或應用所需的功能。

說白了服務就是針對某個單一或系統功能的封裝,例如在 Angular 核心包裡面,最典型的一個服務就是 Http 服務。

幾乎任何東西都可以是一個服務。 典型的服務是一個類,具有專註的、明確的用途。它應該做一件特定的事情,並把它做好。

例如:

  • 日誌服務
  • 和服務端介面交互的服務

組件類應保持精簡。組件本身不從伺服器獲得數據、不進行驗證輸入,也不直接往控制台寫日誌。 它們把這些任務委托給服務。

服務仍然是任何 Angular 應用的基礎。組件就是最大的服務消費者。

組件的任務就是提供用戶體驗,僅此而已。它介於視圖(由模板渲染)和應用邏輯(通常包括模型的某些概念)之間。 設計良好的組件為數據綁定提供屬性和方法,把其它瑣事都委托給服務。

Angular 不會強制要求我們遵循這些原則。 即使我們花 3000 行代碼寫了一個“廚房洗碗槽”組件,它也不會抱怨什麼。

依賴註入(Dependency injection)

“依賴註入”是提供類的新實例的一種方式,還負責處理好類所需的全部依賴。大多數依賴都是服務。 Angular 使用依賴註入來提供新組件以及組件所需的服務。

總結

我們學到的這些只是關於 Angular 應用程式的八個主要構造塊的基礎知識:

這是 Angular 應用程式中所有其它東西的基礎,要使用 Angular,以這些作為開端就綽綽有餘了。 但它仍然沒有包含我們需要知道的全部。

這裡是一個簡短的、按字母排序的列表,列出了其它重要的 Angular 特性和服務。

  • 動畫
  • 表單
  • HTTP
  • 組件生命周期
  • 管道過濾器
  • 路由
  • 測試

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ecmascript 6 ECMAScript 6.0(以下簡稱ES6)是JavaScript語言的下一代標準,已經在2015年6月正式發佈了。 Ecmascript 是 JavaScript 語言的標註規範 JavaScript 是 Ecmascript 規範的具體實現 + 具體實現取決於各大瀏覽 ...
  • 我的項目由客戶端、後臺管理、資料庫和伺服器三部分組件,每次啟動項目都要一個一個啟動,挺麻煩的,現在寫一個.bat文件來批處理命令。 這個是我的啟動文件內容。 第一行運行的我wampServer伺服器,我用這個來運行和管理mySql 第二行,先啟動一個新的命令行視窗,\K 是為了不讓視窗自動關閉,我需 ...
  • app.module 路由模塊 路由守衛 統一處理認證 註冊 登錄 頁面刪除功能 typescript import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router' import ...
  • 創建組件,指令,過濾器和服務 可輔助創建資源的功能列表: | Scaffold | Usage | | | | | "Component" | | | "Directive" | | | "Pipe" | | | "Service" | | | "Class" | | | "Guard" | | | ...
  • 插值 文本綁定 屬性綁定 在布爾特性的情況下,它們的存在即暗示為 ,屬性綁定工作起來略有不同,在這個例子中: 如果 的值是 、`undefined false disabled 元素中。 使用 JavaScript 表達式 編寫模板表達式所用的語言看起來很像 JavaScript。 很多 JavaS ...
  • 啟用 Http 服務 open the root , import the symbol from , add it to the array. 發起一個 get 請求 Reading the full response 錯誤處理 ...
  • 在 Angular 中最常用的指令分為兩種,它們分別是 屬性型指令 和 結構型指令 。 NgClass 作用:添加或移除一組 CSS 類 NgStyle 作用:添加或移除一組 CSS 樣式 NgModel 作用:雙向綁定到 HTML 表單元素 NgIf 作用:根據條件添加或移除 DOM 語法: 我們 ...
  • 幾乎所有前端框架都在玩“組件化”,而且最近都不約而同地選擇了“標簽化”這種思路,Angular 也不例外。 對新版本的 Angular 來說,一切都是圍繞著“組件化”展開的,組件是 Angular 的核心概念模型。 組件的定義 以下是一個最簡單的 Angular 組件定義: :這是一個 Decora ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...