337p人体粉嫩胞高清图片,97人妻精品一区二区三区在线 ,日本少妇自慰免费完整版,99精品国产福久久久久久,久久精品国产亚洲av热一区,国产aaaaaa一级毛片,国产99久久九九精品无码,久久精品国产亚洲AV成人公司
網易首頁 > 網易號 > 正文 申請入駐

React把3種按鈕塞進1個組件,產品經理加需求時團隊崩了

0
分享至


一個Title組件里塞了3種按鈕邏輯,類型用字符串枚舉控制。這種寫法在2023年的代碼評審里依然能過,但產品上線后第4個需求進來時,開發者開始罵娘。

這不是技術債的典型案例,是設計模式課沒講透的后遺癥。開閉原則(OCP,Open Closed Principle)說"對擴展開放,對修改封閉",但很多人直到被需求淹沒才懂這句話的代價。

一個Props對象埋下的雷

原文里的Title組件接收5個Props:title、type、href、buttonText、onClick。type字段用聯合類型鎖死三種形態:"default" | "withLinkButton" | "withNormalButton"。

渲染邏輯用條件分支硬編碼:type匹配字符串,決定要不要渲染按鈕、渲染哪種按鈕。這種寫法在需求穩定時人畜無害,甚至顯得"簡潔"。

問題藏在"修改"兩個字里。

產品經理說標題旁邊要加tooltip,開發者得做三件事:改Props類型定義、加"withTooltip"分支、測試前三種形態有沒有被改壞。每次擴展都要碰核心文件,回歸測試成本線性增長。

更隱蔽的坑是type字段的語義污染。它描述的是"有沒有按鈕、什么按鈕",但新需求可能是"按鈕旁邊加圖標"或"標題帶副標題"。字符串枚舉的擴展性在第三個需求后就捉襟見肘。

組合模式怎么解耦

重構后的方案把Title拆成容器組件和具體實現。基礎Title只負責布局和標題渲染,children作為插槽暴露出去。

Link按鈕版本、普通按鈕版本各自封裝成獨立組件,內部組裝基礎Title。新需求來了?新建一個TitleWithTooltip組件,完全不碰現有代碼。

擴展成本從"改核心+全量回歸"變成"寫新文件+單測新組件"。

這種模式在React生態里有成熟實踐。Ant Design的Modal、Form,Radix UI的Dialog,都是容器+插槽的思路。區別只在于有沒有把"不要改舊代碼"當成鐵律。

原文沒提但值得注意:組合模式在TypeScript里需要處理好children的類型約束。基礎Title的children用ReactNode太寬,用特定組件類型又太死,實際項目中往往要配合render props或context做類型收窄。

為什么團隊明知故犯

第一種寫法在代碼量上確實少。5個Props、3個條件分支,200行內搞定。組合模式需要3個文件、更多樣板代碼,評審時容易被質疑"過度設計"。

但代碼量的比較有個陷阱:它只算第一次寫的成本,不算后面修改的成本。原文的場景里,第二次加tooltip時,第一種方案的總代碼量(含測試)就已經反超。

另一個阻力是團隊習慣。很多前端從jQuery時代過來,習慣了"拿到需求改組件"的肌肉記憶。React官方文檔早期推崇的"一切皆組件"口號,被誤讀成"把所有東西塞進一個組件"。

2019年React Hooks發布后,函數組件成為主流,組合模式的實踐才逐漸普及。但歷史包袱還在——你能在2024年的生產代碼里找到大量class組件時代的"萬能組件"遺跡。

開閉原則的邊界在哪

嚴格遵循OCP需要預判變化方向。如果產品經理明確說"標題區域永遠只有這三種按鈕",第一種寫法就是合理的技術債。問題在于這種承諾在敏捷開發里幾乎不可信。

原文的解決方案也有成本。組件數量膨脹后,目錄結構需要設計。Title、TitleWithLink、TitleWithButton、TitleWithTooltip散落在各處,還是按功能聚合到title/目錄下?這關系到代碼可發現性。

更現實的折中是"預留擴展點但不提前實現"。基礎Title保留children,但先只實現一種具體形態。需求來了再擴展,比推倒重來便宜得多。

你的團隊現在怎么處理這類場景?是堅持組合模式,還是用條件分支硬扛?最近一次因為"加個type"導致的線上事故是什么時候?

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
名宿之子下放中乙,首戰就降維打擊獨中兩元,凸顯海港決策之失誤

名宿之子下放中乙,首戰就降維打擊獨中兩元,凸顯海港決策之失誤

零度眼看球
2026-03-25 07:29:39
賴昌星前妻近狀曝光:拒絕政府安置,獨居3000平老宅,只做一件事

賴昌星前妻近狀曝光:拒絕政府安置,獨居3000平老宅,只做一件事

芳芳歷史燴
2026-03-23 03:53:23
到底是誰讓馬景濤穿這身衣服的?簡直是災難現場!

到底是誰讓馬景濤穿這身衣服的?簡直是災難現場!

西樓知趣雜談
2026-03-25 23:41:24
北京凌晨收到消息,日本砸36億,想取代中國,考驗印尼的時候到了

北京凌晨收到消息,日本砸36億,想取代中國,考驗印尼的時候到了

游古史
2026-03-24 20:08:08
難以置信!網傳上海一對小夫妻結婚僅半年,卻因美甲一事火速離婚

難以置信!網傳上海一對小夫妻結婚僅半年,卻因美甲一事火速離婚

火山詩話
2026-03-23 06:42:44
超級厄爾尼諾要來?申城今夏會更熱?上海專家:入夏可能要“搶跑”,但極端高溫強度或弱于前兩年

超級厄爾尼諾要來?申城今夏會更熱?上海專家:入夏可能要“搶跑”,但極端高溫強度或弱于前兩年

新民晚報
2026-03-25 11:57:01
最美女保鏢嚴月霞同志簡歷

最美女保鏢嚴月霞同志簡歷

TVB的四小花
2026-03-25 07:54:32
省政府領導班子密集調整,省委常委任常務副省長

省政府領導班子密集調整,省委常委任常務副省長

上觀新聞
2026-03-25 15:46:23
正式確定!CBA名將加盟浙江廣廈,重返老東家,全力衛冕總冠軍

正式確定!CBA名將加盟浙江廣廈,重返老東家,全力衛冕總冠軍

體壇瞎白話
2026-03-25 16:52:09
局勢已惡化,日本經濟拉警報,中方不會輕饒高市,人民日報敲鐘聲

局勢已惡化,日本經濟拉警報,中方不會輕饒高市,人民日報敲鐘聲

素衣讀史
2026-03-25 16:17:03
外交部回應“日方擬將中日關系降級”

外交部回應“日方擬將中日關系降級”

閃電新聞
2026-03-24 21:41:15
還記得20年前的《故事會》嗎?廣告不堪入目,簡直是個紙上"暗網"!

還記得20年前的《故事會》嗎?廣告不堪入目,簡直是個紙上"暗網"!

神奇故事
2026-03-17 23:54:32
突發!汽車之家多個平臺被禁止關注

突發!汽車之家多個平臺被禁止關注

熱點科技
2026-03-25 15:29:47
逆天,安徽某市政設計院月發450元高薪!

逆天,安徽某市政設計院月發450元高薪!

黯泉
2026-03-25 12:12:55
曝張雪峰猝逝,知情人曝其在跑步機上心梗,更多細節曝光!

曝張雪峰猝逝,知情人曝其在跑步機上心梗,更多細節曝光!

古希臘掌管松餅的神
2026-03-24 19:16:17
4231萬!Steam同時在線人數再破紀錄:好戲連臺立天功

4231萬!Steam同時在線人數再破紀錄:好戲連臺立天功

游民星空
2026-03-24 11:14:24
山西太原一道路路面塌陷有人連摩托車墜入,當地:傷者已被送醫救治,多部門到場處置

山西太原一道路路面塌陷有人連摩托車墜入,當地:傷者已被送醫救治,多部門到場處置

洪觀新聞
2026-03-25 16:35:55
伊朗據悉要求希望通過霍爾木茲海峽的船舶提供船員和貨物詳情

伊朗據悉要求希望通過霍爾木茲海峽的船舶提供船員和貨物詳情

財聯社
2026-03-25 18:48:03
特朗普聲東擊西,真正目標不是奪島,要綁架“伊朗馬杜羅”?

特朗普聲東擊西,真正目標不是奪島,要綁架“伊朗馬杜羅”?

無情有思可
2026-03-26 01:17:49
比李霄鵬還保守,多名實力球員連登場機會都沒有,韓鵬用人遭質疑

比李霄鵬還保守,多名實力球員連登場機會都沒有,韓鵬用人遭質疑

體壇風之子
2026-03-25 04:30:03
2026-03-26 02:16:49
碳基打工人
碳基打工人
坐標北京,靠咖啡續命,靠小紅書下飯的普通人類。
97文章數 0關注度
往期回顧 全部

科技要聞

紅極一時卻草草收場,Sora宣布正式關停

頭條要聞

伊朗:正在搜捕逃亡美軍

頭條要聞

伊朗:正在搜捕逃亡美軍

體育要聞

35歲替補門將,憑什么入選英格蘭隊?

娛樂要聞

張雪峰遺產分割復雜!是否立遺囑成關鍵

財經要聞

管濤:中東局勢如何影響人民幣匯率走勢?

汽車要聞

智己LS8放大招 30萬內8系旗艦+全線控底盤秀實力

態度原創

時尚
本地
游戲
親子
軍事航空

女人過了40歲別胡亂穿衣,趕緊看看這些日系穿搭,舒適又耐看

本地新聞

來永泰同安 赴一場春天的約會

PS6升級動力遭質疑!玩家或當“PS5釘子戶”

親子要聞

智利幼兒教育覆蓋率僅43%,專家吁提升投資與優先地位

軍事要聞

伊朗重申非交戰國家船只可安全通過霍爾木茲海峽

無障礙瀏覽 進入關懷版