官方說明請參閱/master/README.zh-CN
相容性: ^[email protected] | ^[email protected]
window.tabsAction.reloadTab()
window.tabsAction.closeTab()
window.tabsAction.goBackTab()
window.tabsAction.closeAndGoBackTab()
window.tabsAction.getTabKey()
window.tabsAction.listenActiveChange()
reloadable
,支援在頭部操作欄刷新目前標籤頁follow
,路由定義中新增配置,預設開啟方式是新增到所有標籤頁最後面,可透過配置該屬性,使得一個標籤頁在follow
指定的標籤頁後面開啟(可參考查詢頁Demo)persistent
,支援頁面刷新之後恢復上次的標籤頁狀態注意:
├── config
│ └── defaultSettings.ts # 系统风格配置,新增关于 SwitchTabs 的配置
├── src
│ └── layouts
│ └── SwitchTabsLayout # 路由加载
│ └── pages
│ └── SwitchTabsDemo # 标签页功能展示
???
已發包use-switch-tabs,同時透過use-switch-tabs 進行了重構。 —— 2021.06.19
v4-legacy
基於ant design pro
V4 版本的功能分支。
v2-legacy
原倉庫名稱ant design pro v2 plus
,代號移到此分支。重新命名為ant design pro plus
後,在master
分支跟進ant design pro
中的更新。
umi/v2.x
基於[email protected] 的功能實作。
Pro V5 在架構上有了較大的重構,透過Umi 的插件機制屏蔽了更多的實作細節。不過得益於先前已將標籤頁核心功能發包use-switch-tabs,故需要做得工作並不多。但值得注意的一點是需要@umijs/plugin-layout
的版本不能低於0.18.0
,詳見此討論,因此@umijs/preset-react
版本不能低於1.8.28
,詳見此更新。
最後,實現入口改到了app.ts,透過此入口可查看具體實現,相關UI 元件較於V4 基本上沒有改變。
補充說明:由於V5 開始使用了扁平化的路由,以及當前use-switch-tabs
做了redirect 的適配,所以在使用頁面標籤化的功能的時候注意originalRoutes
需要處理得當,避免isSwitchTab
判斷異常。
children
的標籤頁功能實現從[email protected] 升級到[email protected] 的問題相關討論和分析參考umijs/umi#4425,最終分析得出了導致暫時無法升級的根本原因,PR umijs/umi#6101 修復了該問題,但需要使用[email protected] 以上版本。
可使用withSwitchTab
函數包裝頁面元件,避免頁面重複渲染。值得注意的是,如果在頁面中使用了一些特殊的狀態,例如useLocation
這樣的hook,會導致無法最佳化。如果一定要用的話,可自行使用useMemo
優化。
在切換的時候標籤會出現閃爍的狀況#5,剛開始還沒在意,後來發現了原因,參考ant-design/ant-design#25343。
由於是部署到Github Pages,配置了exportStatic
,故無法使用形如/result/:id
的動態路由。又透過isProductionEnv
變數來避免登入邏輯等問題,如果有介面報錯可忽略,重點是功能實作_(:з”∠)_