iT邦幫忙

2026 iThome 鐵人賽

DAY 29
0
AI Engineering

用 React x Dify 打造 AI 智慧用藥監測系統系列 第 29 篇

DAY29 提升專業感與效能:部署前的 Custom Hook 與程式碼重構

  • 分享至 

  • xImage
  •  

我們的 AI 臨床用藥助理已經具備了完整的功能與流暢的 UX 設計。在明天(Day 30)迎來最後的正式部署前,今天我們要做一件每一位資深軟體工程師都必須做的事:重構 (Refactoring) 與專案清理。

當我們連續開發了近 30 天,專案中難免會累積一些可以寫得更簡潔的邏輯。清理這些「技術債 (Technical Debt)」,不僅能讓未來的維護更輕鬆,也能展現我們對系統架構的專業度。

為什麼要重構?看見 Custom Hook 的力量
回顧我們的 MedicationContext.jsx,裡面包含了落落長的 localStorage 讀取、寫入與 useEffect 監聽邏輯。雖然功能正常,但這違反了「職責分離 (Separation of Concerns)」的原則——Context 應該專心處理資料的流動,而不是處理瀏覽器底層 API 的讀寫。
今天,我們挑戰進階的 React 技巧:建立自訂 Hook (Custom Hook),把存檔邏輯抽離出來。

Step 1:建立 useLocalStorage Hook
在 src 目錄下新增一個 hooks 資料夾,並建立 useLocalStorage.js 檔案:
https://ithelp.ithome.com.tw/upload/images/20260913/20178797cuhvWK49ND.jpg

Step 2:大幅瘦身 MedicationContext.jsx
有了神兵利器後,我們回到 src/context/MedicationContext.jsx。
我們只需要引入剛寫好的 Hook,並用一行程式碼替換掉原本一大段的存檔邏輯:
https://ithelp.ithome.com.tw/upload/images/20260913/20178797DUXi2KseSO.jpg
原本的檔案瞬間變得超級乾淨且好閱讀,這就是軟體工程中「封裝 (Encapsulation)」

最後確認網頁F12的console是乾淨的
https://ithelp.ithome.com.tw/upload/images/20260913/20178797h5tCV1YBFj.jpg


上一篇
DAY28 迎接新的一天:實作「一鍵重置」的批次狀態更新
下一篇
DAY30 從零打造 AI 智慧用藥監測系統,回顧與未來展望
系列文
用 React x Dify 打造 AI 智慧用藥監測系統 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言