最近,有關 JavaScript 框架的對話主要由 React(技術上是一個函式庫)、Next.js、Svelte、Angular 等流行名稱主導。
這些都是很棒的工具,但是您聽過 Aurelia 2 嗎?
當我第一次遇到 Aurelia 時,我的反應是:「那是什麼?」但經過兩年的使用,我現在相信它即使不是最好的框架,也是最好的框架之一。
為什麼我會這麼想?
讓我解釋一下。我從 React.js 過渡到 Aurelia,最初,我認為它只是另一個 JavaScript 框架。然而,隨著我深入研究,我開始意識到它真正的潛力和力量。
本文將介紹 Aurelia 2,我將在其中展示其一些強大的概念以及它為何脫穎而出。
1。事件聚合器
首先是事件聚合器,如果您在 C# 生態系統中工作過,您可能會熟悉這個概念,但它在 Aurelia 中的工作原理如下:
事件聚合器的功能類似於 C# 中常用的基於事件的訊息傳遞模式。它是一個發布/訂閱系統,允許您在 Aurelia 應用程式中發布和訂閱自訂事件。
這有助於應用程式不同部分之間的解耦通訊。就像在 C# 中一樣,事件聚合器或中介器用於簡化事件處理,框架本身利用 Aurelia 的事件聚合器在應用程式生命週期的各個階段和特定操作期間發布事件。
import { IEventAggregator, resolve } from 'aurelia'; export class FirstComponent{ readonly ea: IEventAggregator = resolve(IEventAggregator); bound() { this.ea.publish('ea_channel', ‘PAYLOAD’) } }
import { IEventAggregator, resolve } from 'aurelia'; export class SecondComponent { readonly ea: IEventAggregator = resolve(IEventAggregator); bound() { this.ea.subscribe('ea_channel', payload => { // Do stuff inside of this callback }); } }
有了這個,我們可以毫不費力地實現事件驅動的架構,解決React和類似框架經常遇到的耦合問題。
2。 依賴注入
依賴注入(DI)是一種設計模式,它有助於創建具有所需依賴項的對象,而對象本身不負責創建這些依賴項。這促進了類別及其依賴項之間的鬆散耦合,增強了模組化和可測試性。
Aurelia 提供了強大且靈活的 DI 系統,可以簡化連接應用程式不同部分的過程。借助 Aurelia 的 DI,管理和注入依賴關係變得無縫,產生更乾淨、更易於維護的程式碼。
此外,這種方法使測試驅動開發 (TDD) 變得更容易,因為它允許直接模擬和測試各個元件,而不需要複雜的設定或緊密耦合的依賴項。
3。動態構圖
Aurelia 的元素可以動態組合視圖和視圖模型。它的作用類似於自訂元素,但不需要特定的標籤名稱,從而允許靈活且可重複使用的 UI 元件。
在與 一起使用的視圖模型內,您可以存取 Aurelia 的所有標準生命週期事件,以及可用於初始化或將參數傳遞給視圖模型的附加 activate 方法。
實務上使用 元素:
import { IEventAggregator, resolve } from 'aurelia'; export class FirstComponent{ readonly ea: IEventAggregator = resolve(IEventAggregator); bound() { this.ea.publish('ea_channel', ‘PAYLOAD’) } }
工作原理:
動態組合:component.bind 屬性動態綁定 DynamicComponent 作為視圖模型。
傳遞參數:model.bind 屬性將參數傳遞給動態組合視圖模型中的 activate 方法。
關注點分離
我喜歡 Aurelia 2 的原因之一是它透過 MVVM(模型-視圖-視圖模型)模式實現了清晰的關注點分離。
View:UI結構與邏輯完全解耦。它只是綁定到 ViewModel 來顯示資料並捕獲用戶互動。
ViewModel:這是所有邏輯發生的地方。它控制資料、處理業務規則並更新視圖,而無需擔心它如何顯示。
模型:Aurelia 將核心應用程式資料與 View 和 ViewModel 分開,保持清晰度和焦點。
這種分離使應用程式高度模組化,更易於維護,並且更易於測試,從而允許更靈活、可擴展的程式碼。
結論
在這篇文章中,我只重點介紹了 Aurelia 2 中的三個強大概念——事件聚合器、依賴注入和動態組合——但這只是該框架所提供功能的一小部分。
Aurelia 2 包含有助於建置乾淨、可擴展且可維護的應用程式的功能。
為了全面了解並深入了解其功能,我強烈建議您探索 Aurelia 2 文件以獲得更全面的理解。
PS:這是我的第一篇文章,希望你喜歡它!
以上是Aurelia 對 JavaScript 框架的全新詮釋的詳細內容。更多資訊請關注PHP中文網其他相關文章!