快應用 頁面啟動模式

2020-08-10 11:00 更新

用于定義頁面的啟動行為

靜態(tài)聲明

在 manifest 文件中頁面路由信息 router.page 可增加啟動模式字段 launchMode,用于聲明該頁面的啟動模式

頁面啟動模式參數:

屬性 類型 默認值 必填 描述
launchMode 1050+ String standard 聲明頁面的啟動模式,支持"singleTask","standard"兩種頁面啟動模式。
標識為"singleTask"模式時每次打開目標頁面都會打開已有的目標頁面并回調onRefresh生命周期函數,清除該頁面上打開的其他頁面,沒有打開過此頁面時會創(chuàng)建新的目標頁面實例。
標識為"standard"模式時會每次打開新的目標頁面(多次打開目標頁面地址時會存在多個相同頁面)

示例:

"router": {
    "entry": "PageA",
    "pages": {
      "PageA": {
        "launchMode": "singleTask",
        "component": "index"
      },
      "PageB": {
        "launchMode": "standard",
        "component": "index"
      },
      "PageC": {
        "launchMode": "singleTask",
        "component": "index"
      }
    }
  }

打開頁面的行為邏輯:

若按順序啟動 PageA -> PageB -> PageC -> PageB -> PageC -> PageA

  • 打開 PageA,首次打開時頁面棧為空 ?頁面棧為?PageA??
  • 打開 PageB,PageB 的啟動模式為 standard,即在 PageA 之上新建 PageB 的頁面實例并顯示 ?頁面棧為??PageA?,?PageB?
  • 打開 PageC,首次打開 PageC,即在 PageB 之上新建 PageC 的頁面實例并顯示 ?頁面棧為??PageA?,?PageB?,?PageC?
  • 打開 PageB,PageB 的啟動模式為 standard,即在 PageC 之上新建 PageB 的頁面實例并顯示 ?頁面棧為??PageA?,?PageB?,?PageC?,?PageB?
  • 打開 PageC,PageC 頁面實例已存在,即銷毀 PageC 之上的頁面實例 PageB,回到之前打開的 PageC 的頁面實例并回調此頁面生命周期的 onRefresh 函數 ?頁面棧為PageA?,?PageB?,?PageC?
  • 打開 PageA,PageA 頁面實例已存在,即銷毀 PageA 之上的頁面實例 PageB 和 PageC,回到之前打開的 PageA 的頁面實例并回調此頁面生命周期的 onRefresh 函數 ?頁面棧為PageA?

動態(tài)聲明

動態(tài)聲明有兩種方式。一種是在 router.push 中攜帶啟動標識參數,另一種是在打開頁面的鏈接中攜帶啟動標識參數。啟動標識參數可以控制頁面打開行為。

頁面啟動標識參數:

參數 類型 必填 說明
___PARAMLAUNCH_FLAG\__1050+ String 跳轉快應用頁面時傳遞的頁面參數。攜帶clearTask時啟動目標頁面會清除此頁面外的其他頁面,存在多個目標頁面時只保留最先打開的目標頁面并回調onRefresh生命周期。如不存在目標頁面時將清除所有頁面并新建目標頁面實例。

示例:

// `1050+` 以'clearTask'標識啟動頁面
router.push({
  uri: '/PageB',
  params: {
    ___PARAM_LAUNCH_FLAG___: 'clearTask'
  }
})

打開頁面的行為邏輯:

若已經打開頁面棧為 PageA -> PageB -> PageC,此時以clearTask標識啟動PageB

  • 銷毀 PageC 頁面實例
  • 銷毀 PageA 頁面實例
  • PageB 頁面實例已存在,回到此頁面實例并回調此頁面生命周期的 onRefresh 函數 若已經打開頁面棧為 PageA -> PageC,此時以 clearTask 標識啟動 PageB
  • 銷毀 PageC 頁面實例
  • 銷毀 PageA 頁面實例
  • PageB 頁面實例不存在,新建 PageB 頁面實例并顯示


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號