導航狀態常用於頁面間的資料傳遞
特別適合單向的數據傳遞(只管數據帶到下一頁,不管帶回上一頁)
使用上直觀且簡單
另外現代瀏覽器多半有緩存機制可以保存各頁面的狀態
即便客戶端進行 Reload, 或點擊上下頁依然可以保存狀態
應用上像是商品目錄頁進到商品內頁
可以藉由導航狀態先將部分資訊帶入內頁渲染
剩餘的資訊再藉由動態請求補齊
可以有效提升使用者體驗
底下以 React Router v6 為例
來說明導航狀態的實際應用:
- useNavigate
useNavigate
這是一個頁面級別的元件代碼範例
包含接收來自上一頁的 state
和將 state 帶入新頁面的方法
1 | const Page = () => { |
從上面的代碼可以看到導航狀態來自於 location 的 state
可將其作為 viewModel 的預設值 之後主要用來更新視圖
當元件掛載完成後 便會觸發 fetchPageData 進行動態數據請求和視圖更新
如果需要將狀態帶入新頁面 則可以參考 onNextPageClick 函式
本文作者: David Huang
本文地址: https://davidblog.github.io/2023/07/12/navigate/