在產品開發裡,有一個問題幾乎每個團隊都會吵過:
這個功能要用 Modal,還是開一個新頁面?
大多數時候,答案是:「看情況」。
問題是——
「看情況」三年後,會變成一個體驗不一致的產品。
有些操作跳頁、有些跳 Modal,使用者無法預期;
工程師也開始複製貼上各種 implementation,最後誰都說不清為什麼這樣設計。
這篇文章的目標很簡單:
把「看情況」變成一個可以重複使用的決策框架。
這不是 UI 元件的差異,而是**認知模式(cognitive mode)**的差異。
Modal 是「暫停世界」
Page 是「切換世界」
Modal
Page
Modal 的本質是:
它會打斷使用者,並要求立即處理某件事。
這也是為什麼——選錯會很痛。
不是「小功能就用 Modal」,而是看這三個條件。
如果這個操作只是當前任務的一部分,Modal 很適合。
典型場景:
真實案例:
Google Drive
因為這些都是「不應該打斷主要任務」的操作
Modal 的優勢是「不離開當前頁面」。
這會降低使用者的潛在焦慮:
「我點下去會不會迷路?」
真實案例:
如果改成 Page,反而增加切換成本
如果使用者需要「看到背景資訊」才能完成操作,Modal 很有價值。
例子:
核心原則:
Modal 保留了上下文,而 Page 會切斷上下文
這裡的判斷其實更明確:很多情況是「不要硬用 Modal」。
只要符合以下任一條件:
就應該用 Page
真實產品:
原因:
這些任務需要「持續狀態」,而不是暫時中斷
如果某個狀態需要:
就不應該只存在於 Modal
常見錯誤設計:
結果:
Modal 是單任務模型:
一次只能做一件事
但 Page 可以:
真實案例:
這是最現實的一段。
很多時候,不是 UX 問題,而是工程選擇:
Modal 比 routing 簡單
常見原因:
於是:
「先用 Modal 做」
幾個月後:
使用者滾動時,背景也跟著動。
body.modal-open {
overflow: hidden;
}
Tab 跑到背景 → 使用者完全迷路
這不是加分項,是基本要求
建議做法:
/products?modal=edit&id=123
Modal 狀態應該可被 URL 還原
Page 也不是完美。
經典問題:
使用者返回上一頁 → 篩選條件全部消失
原則:
使用者花時間建立的狀態,不應該消失
下次不要再「憑感覺」,直接問:
Modal 是「暫停世界」
Page 是「切換世界」
如果你的功能不值得「暫停整個世界」——
那就不要用 Modal。
Nielsen Norman Group
Modal and Nonmodal Dialogs
Smashing Magazine
Modal vs. Separate Page UX Decision Tree