Release ng-alain 2.0

從計(jì)劃2.0開始足足進(jìn)行近四個(gè)月,其中發(fā)布過八個(gè)版本。當(dāng)初給2.0做的愿景基本上達(dá)到要求,當(dāng)然一切都還是那句話:【讓開發(fā)者更加專注于業(yè)務(wù)】

ng-zorro-antd 提供的大量的基礎(chǔ)組件,當(dāng)你熟悉這些組件以后,開發(fā) Angular 會(huì)是一種“爽”體驗(yàn),然而對(duì)于中后臺(tái)而言部分高頻繁組件在大多數(shù)場(chǎng)景下顯得有點(diǎn)臃腫。

所以 2.0 變更主要從兩個(gè)方面:

  • 使 CURD 操作更“自然”開發(fā)體驗(yàn)
  • 更友好響應(yīng)式開發(fā)

CURD

提供一組 Simple 系列組件:

  • sv:查看
  • se:編輯
  • st:數(shù)據(jù)表格(原 simple-table 重新重構(gòu))

以及基于 JSON Schema 的動(dòng)態(tài)表單 sf,這四個(gè) Simple 系列組件相比較 ng-zorro-antd 的原始寫法,更易編寫、閱讀,基本上可以滿足大多數(shù)場(chǎng)景;但它們并非用來(lái)替代原始的寫法,特別是 stsf 它們并不適合復(fù)雜交互,此時(shí),依然應(yīng)該優(yōu)先使用原始方式。

除此之外,2.0 對(duì)部分輸入屬性及接口的多態(tài)性、內(nèi)聚性做一些變更。

屬性多態(tài)性

當(dāng)構(gòu)建一個(gè)數(shù)據(jù)表格時(shí),表格的數(shù)據(jù)源可能來(lái)自遠(yuǎn)程數(shù)據(jù)或本地靜態(tài)數(shù)據(jù),但我們不應(yīng)該過度的將數(shù)據(jù)源做成兩個(gè)不同屬性加以區(qū)分,他們只是不同的數(shù)據(jù)來(lái)源而已,但對(duì)于表格而言是統(tǒng)一:

<table [data]="url"></table>
<table [data]="list"></table>

屬性內(nèi)聚性

同一個(gè)功能的屬性應(yīng)該更內(nèi)聚,例如我們表述一個(gè)HTTP請(qǐng)求時(shí),包含:請(qǐng)求方法、請(qǐng)求域、參數(shù)等,這些屬性應(yīng)該統(tǒng)一在一個(gè)對(duì)象值體現(xiàn),HttpClient 請(qǐng)求就是一個(gè)非常好的例子。

<st [reqMethod]="'GET'" [reqParams]="{ a: 1 }"></st>

<st [req]="{ method: 'get', params: { a: 1 } }"></st>

響應(yīng)式開發(fā)

意指開發(fā)過程中如何使用最小的方式構(gòu)建符合移動(dòng)端的中后臺(tái),ng-alain 默認(rèn)提供一套 響應(yīng)式服務(wù) 規(guī)則,它服務(wù)于最基礎(chǔ)的CURD組件:se、sv 等。例如:當(dāng)你希望構(gòu)建一行兩列的表單,并且若屏幕小于 <576px 將自動(dòng)轉(zhuǎn)化成一列,則只需要這樣:

<div se-container="2">
  <se label="Field1"></se>
  <se label="Field2"></se>
</div>

當(dāng)然這一切只是簡(jiǎn)化 nz-row、nz-col 的運(yùn)用而已,如果你希望布局也延續(xù)這種方式可以使用 sg 組件。

除此之外,ng-alain 也將 CSS 做為開發(fā)語(yǔ)言非常重要的組成部分,并且將這些語(yǔ)言特征轉(zhuǎn)化成獨(dú)立的單元類,如果你是采用 VSCODE 可借由 ng-alain snippets 提供的智能提醒,減少理解它們的成本。

升級(jí)

Angular Cli 提供的 ng update 命令讓我們可以大膽重構(gòu)、改進(jìn)你的組件,并且用戶升級(jí)只需要簡(jiǎn)單的一行命令就可以完全升級(jí)。

從 1.x 升級(jí)至 2.x 雖然無(wú)法改變 ts 代碼方面的動(dòng)作,但基本上可以完成 HTML 方面的升級(jí),主要還是 ts 代碼的解析無(wú)法像 HTML 那樣預(yù)期。

而 ng-alain 的 1.x 升至 2.0 也只需要一行命令而已,有關(guān)更多細(xì)節(jié),請(qǐng)參考升級(jí)指引。

未來(lái)

直到 ng-zorro-antd 下一大版本更新之前,2.0 保持一段時(shí)間的休息期,不再會(huì)有新功能。之后,會(huì)根據(jù) ng-zorro-antd 的進(jìn)度,對(duì) ng-alain 做一次大的性能重構(gòu)。

新嘗試

ng-alain 正在嘗試提供商業(yè)主題服務(wù),有興趣可以參閱。

(完)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容