iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
AI Engineering

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

DAY24 系統優化與防呆機制:處理空狀態與載入中的使用者體驗 (UX)

  • 分享至 

  • xImage
  •  

我們的 AI 用藥監控系統已經具備了強大的核心功能,不僅能儲存用藥資料,還能提供專業且排版精美的 AI 建議。但在真實世界的應用程式中,我們不能只考慮「順利運作」的情境,還要處理各種邊緣情況 (Edge Cases)。

今天,我們要把重點拉回前端的使用者體驗 (UX),為系統加上更完善的防呆機制。具體來說,我們要處理兩種情境:當使用者還沒加入任何藥物就點擊 AI 分析時的「空狀態 (Empty State)」,以及呼叫 API 時的「載入中 (Loading) 視覺回饋」。

為什麼需要處理空狀態與載入狀態?
1.空狀態防呆:如果使用者清單是空的,我們把空字串傳給 Gemini,不僅浪費 API 額度,還可能讓 AI 產生困惑的回覆。我們應該在前端直接攔截這個動作。
2.載入中視覺回饋:呼叫外部 API 通常需要 1 到 3 秒。如果按鈕點下去毫無反應,使用者可能會以為系統壞了而瘋狂連點。提供明確的「載入中」動畫,能有效降低使用者的焦慮。

Step 1:升級 AIPanel.jsx 的狀態與邏輯
我們在之前的實作中,其實已經初步預留了 isLoading 狀態,現在我們要讓它的視覺效果更好,並且強化空狀態的阻擋邏輯。
打開 src/components/AIPanel.jsx,寫下強化版的程式碼:
https://ithelp.ithome.com.tw/upload/images/20260910/20178797vNXZ0hrGXl.jpg
https://ithelp.ithome.com.tw/upload/images/20260910/20178797KTit3hdsFD.jpg
https://ithelp.ithome.com.tw/upload/images/20260910/20178797Y44RkvC8Pb.jpg

這次升級帶來了哪些改變?
1.按鈕禁用機制 (Disable): 當清單沒有任何藥物時,按鈕會呈現灰色不可點擊的狀態,直接從視覺上防止無效的 API 請求。
2.加入 Loading 轉圈動畫: 在按鈕內加入了一個小巧的 SVG 旋轉動畫,讓使用者明確知道系統正在努力運算。
3.加入骨架屏 (Skeleton Loading): 這是現代前端非常流行的 UX 技巧。在等待 AI 回覆的區域,我們不只顯示文字,而是顯示淡紫色的漸層色塊動畫,模擬文字即將載入的感覺。
4.獨立的錯誤狀態 (Error State): 新增了 error 狀態來專門處理並顯示紅色的錯誤提示,將正常內容與異常提示清楚分開。

https://ithelp.ithome.com.tw/upload/images/20260910/201787979eTPHsB2qZ.jpg
https://ithelp.ithome.com.tw/upload/images/20260910/20178797F4ylCJXPDY.jpg
https://ithelp.ithome.com.tw/upload/images/20260910/20178797aDcjaPSE3X.jpg


上一篇
DAY23 提升 AI 內容可讀性:引入 Markdown 渲染與 Tailwind 排版外掛
系列文
用 React x Dify 打造 AI 智慧用藥監測系統24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言