優維低代碼技術專欄,是一個全新的、技術為主的專欄,由優維技術委員會成員執筆,基于優維7年低代碼技術研發及運維成果,主要介紹低代碼相關的技術原理及架構邏輯,目的是給廣大運維人提供一個技術交流與學習的平台。
連載第二十二期
《進階指引:Route Alias 路由别名和Segues 頁面切換》
▽
Route Alias 路由别名
在路由定義中,可以通過 alias 字段聲明該路由的别名,該别名可以承擔路由 ID 的作用。可以通過它來簡化路由跳轉的編排。
# 示例
可以在構件事件中跳轉:
bricks:
- brick: your.awesome-brick
events:
item.click
action: "alias.push"
args:
- your-alias
- id: ${EVENT.detail.itemId}
也可以在構件屬性中使用求值占位符擷取别名對應的 URL:
bricks:
- brick: your.another-brick
properties:
useBrick:
brick: your.item-brick
transform:
url: "<% ALIAS.getUrl('your-alias', { id: DATA.itemId }) %>"
Alias 别名在路由跳轉中和 Segues 很像,差別是不需要額外定義 segues。
在事件處理配置中,可以使用内置處理器 alias.push / alias.replace 實作頁面跳轉,更多資訊請參見 内建處理器:alias.*。
在求值占位符中,可以調用 ALIAS.getUrl(alias, pathParams, query) 得到目标頁面位址,該函數接收的參數清單和 alias.push 一緻,請參考 内建處理器:alias.*。
Segues 頁面切換
在 Storyboard 的路由定義中,可以通過 segues 字段聲明該路由下的頁面切換配置。Segues 配置可以用于組織視圖之間的通路關系,在 next-builder 中可以在 Routes Graph 頁面顯示該關系。
# 示例
如上圖:
- 紅色方框内容為 Segues 的定義;
- 黃色方框内容為 Segues 的使用方法一:事件;
- 綠色線條内容為 Segues 的使用方法二:求值占位符。
segues 的定義是一個字典,鍵名為該 segue 的 ID,值為一個 target 設定為跳轉目标路由的 alias。上圖紅色方框内容表示:為路由 example-list 定義了一個 ID 為 go-to-detail 的 segue,該 segue 跳轉目标為 alias 等于 example-detail 的路由。
Segues 定義僅用于該路由頁面或其子路由頁面,是以 Segue ID 在該路由内保持唯一性就可以。而跳轉目标 target 指向的 alias 是對整個 Micro App 的,是以 alias 應保障在 Micro App 内唯一,否則 Segue 的跳轉目标将無法确定。