真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

可靠React組件設(shè)計(jì)的7個(gè)準(zhǔn)則之SRP

我喜歡React組件式開發(fā)方式。你可以將復(fù)雜的用戶界面分割為一個(gè)個(gè)組件,利用組件的可重用性和抽象的DOM操作。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、新邱網(wǎng)站維護(hù)、網(wǎng)站推廣。

基于組件的開發(fā)是高效的:一個(gè)復(fù)雜的系統(tǒng)是由專門的、易于管理的組件構(gòu)建的。然而,只有設(shè)計(jì)良好的組件才能確保組合和復(fù)用的好處。

盡管應(yīng)用程序很復(fù)雜,但為了滿足最后期限和意外變化的需求,你必須不斷地走在架構(gòu)正確性的細(xì)線上。你必須將組件分離為專注于單個(gè)任務(wù),并經(jīng)過(guò)良好測(cè)試。

可靠React組件設(shè)計(jì)的7個(gè)準(zhǔn)則之SRP

不幸的是,遵循錯(cuò)誤的路徑總是更加容易:編寫具有許多職責(zé)的大型組件、緊密耦合組件、忘記單元測(cè)試。這些增加了技術(shù)債務(wù),使得修改現(xiàn)有功能或創(chuàng)建新功能變得越來(lái)越困難。

編寫React應(yīng)用程序時(shí),我經(jīng)常問(wèn)自己:

  • 如何正確構(gòu)造組件?

  • 在什么時(shí)候,一個(gè)大的組件應(yīng)該拆分成更小的組件?

  • 如何設(shè)計(jì)防止緊密耦合的組件之間的通信?

幸運(yùn)的是,可靠的組件具有共同的特性。讓我們來(lái)研究這7個(gè)有用的標(biāo)準(zhǔn)(本文只闡述 SRP,剩余準(zhǔn)則正在途中),并將其詳細(xì)到案例研究中。

單一職責(zé)

當(dāng)一個(gè)組件只有一個(gè)改變的原因時(shí),它有一個(gè)單一的職責(zé)。

編寫React組件時(shí)要考慮的基本準(zhǔn)則是單一職責(zé)原則。單一職責(zé)原則(縮寫:SRP)要求組件有一個(gè)且只有一個(gè)變更的原因。

組件的職責(zé)可以是呈現(xiàn)列表,或者顯示日期選擇器,或者發(fā)出 HTTP 請(qǐng)求,或者繪制圖表,或者延遲加載圖像等。你的組件應(yīng)該只選擇一個(gè)職責(zé)并實(shí)現(xiàn)它。當(dāng)你修改組件實(shí)現(xiàn)其職責(zé)的方式(例如,更改渲染的列表的數(shù)量限制),它有一個(gè)更改的原因。

為什么只有一個(gè)理由可以改變很重要?因?yàn)檫@樣組件的修改隔離并且受控。單一職責(zé)原則制了組件的大小,使其集中在一件事情上。集中在一件事情上的組件便于編碼、修改、重用和測(cè)試。

下面我們來(lái)舉幾個(gè)例子

實(shí)例1:一個(gè)組件獲取遠(yuǎn)程數(shù)據(jù),相應(yīng)地,當(dāng)獲取邏輯更改時(shí),它有一個(gè)更改的原因。

發(fā)生變化的原因是:

  • 修改服務(wù)器URL

  • 修改響應(yīng)格式

  • 要使用其他HTTP請(qǐng)求庫(kù)

  • 或僅與獲取邏輯相關(guān)的任何修改。

示例2:表組件將數(shù)據(jù)數(shù)組映射到行組件列表,因此在映射邏輯更改時(shí)有一個(gè)原因需要更改。

發(fā)生變化的原因是:

  • 你需要限制渲染行組件的數(shù)量(例如,最多顯示25行)

  • 當(dāng)沒(méi)有要顯示的項(xiàng)目時(shí),要求顯示提示信息“列表為空”

  • 或僅與數(shù)組到行組件的映射相關(guān)的任何修改。

你的組件有很多職責(zé)嗎?如果答案是“是”,則按每個(gè)單獨(dú)的職責(zé)將組件分成若干塊。

如果您發(fā)現(xiàn)SRP有點(diǎn)模糊,請(qǐng)閱讀本文。 在項(xiàng)目早期階段編寫的單元將經(jīng)常更改,直到達(dá)到發(fā)布階段。這些更改通常要求組件在隔離狀態(tài)下易于修改:這也是 SRP 的目標(biāo)。

1.1 多重職責(zé)陷阱

當(dāng)一個(gè)組件有多個(gè)職責(zé)時(shí),就會(huì)發(fā)生一個(gè)常見的問(wèn)題。乍一看,這種做法似乎是無(wú)害的,并且工作量較少:

  • 你立即開始編碼:無(wú)需識(shí)別職責(zé)并相應(yīng)地規(guī)劃結(jié)構(gòu)

  • 一個(gè)大的組件可以做到這一切:不需要為每個(gè)職責(zé)創(chuàng)建組成部分

  • 無(wú)拆分-無(wú)開銷:無(wú)需為拆分組件之間的通信創(chuàng)建 props 和 callbacks

這種幼稚的結(jié)構(gòu)在開始時(shí)很容易編碼。但是隨著應(yīng)用程序的增加和變得復(fù)雜,在以后的修改中會(huì)出現(xiàn)困難。同時(shí)實(shí)現(xiàn)多個(gè)職責(zé)的組件有許多更改的原因?,F(xiàn)在出現(xiàn)的主要問(wèn)題是:出于某種原因更改組件會(huì)無(wú)意中影響同一組件實(shí)現(xiàn)的其它職責(zé)。

可靠React組件設(shè)計(jì)的7個(gè)準(zhǔn)則之SRP

不要關(guān)閉電燈開關(guān),因?yàn)樗瑯幼饔糜陔娞荨?/p>

可靠React組件設(shè)計(jì)的7個(gè)準(zhǔn)則之SRP

這種設(shè)計(jì)很脆弱。意外的副作用是很難預(yù)測(cè)和控制的。

例如, 同時(shí)有兩個(gè)職責(zé),繪制圖表,并處理為該圖表提供數(shù)據(jù)的表單。 就會(huì)有兩個(gè)更改原因:繪制圖表和處理表單。

當(dāng)你更改表單字段(例如,將 修改為