“任意門”:一行配置實現頁面跳轉重定向。
背景 & 痛點 & 價值
動態路由組件,處理的是 App 中最最常見的一種行爲的問題,那就是:跳轉。
隨着 App 技術棧的擴展,從原本最最簡單的原生到原生的跳轉,擴展到目前同一個 App 中包含原生頁面、H5 頁面、Weex 頁面、Flutter 頁面之間的跳轉。
隨之而來的問題就是:隨着 App 的版本迭代,很多原本原生實現的頁面,需要通過新的 H5 或者 Weex 頁面進行升級/降級。而這些原本都是硬編碼的跳轉邏輯,可能需要隨着版本不停改動。總結下來,現有的,各個技術棧隔離的頁面跳轉邏輯面臨的直接問題有:
- 跳轉邏輯跟着版本走,無法統一進行改動
- 跨技術棧跳轉的實現成本比較高,必須在橋接模塊中進行特殊適配
- 在一些 H5 需要使用專門 WebView 頁面打開的場景下,很難去適配,也必須通過各個 Web 跳轉的攔截做特殊處理
爲了解決以上硬編碼以及靈活性差的問題,我們決定梳理現有的各技術棧跳轉邏輯,將這些跳轉整合,能夠滿足動態性、可配置的需求。
得益於項目中原有的路由跳轉組件,各種頁面之間的頁面都可以通過 URL 的方式進行路由,於是我們基於 URL 跳轉,開發了一套動態路由組件,它完成的工作有 :
- 承擔 App 內所有跳轉邏輯
- 通過配置中心組件,支持獲取/配置路由替換規則
- 匹配所有的路由跳轉規則,命中規則的,替換成新的目標路由地址
- 將實際跳轉目標地址傳遞給路由組件執行實際的跳轉行爲
原文鏈接:【https://www.infoq.cn/article/LVQUWPfMN2XM86r5EEYP】。未經作者許可,禁止轉載。