History

History

历史记录
由于小程序只支持最多10级页面,但需求上希望维护更长的历史栈,故自行维护完整历史记录

Constructor

new History(routes)

Source:

构造函数

Parameters:
Name Type Description
routes Array.<History~Route>

初始路由栈

Members

correctLevel

Source:

自行维护的逻辑历史栈与系统实际历史栈应当始终保持一致的层数

curRoute

Source:

当前页面

length

Source:

历史栈长度

routes

Source:

完整历史记录

Methods

back(delta) → {History~Route}

Source:

返回

Parameters:
Name Type Description
delta Number

返回级数

Returns:

返回完成后所处的页面

Type
History~Route

config(correctLevel)

Source:

配置

Parameters:
Name Type Description
correctLevel number

自行维护的逻辑历史栈与系统实际历史栈的前多少项应当始终保持一致,用于校正代码疏漏和系统交互造成的逻辑历史栈失真

doCorrection()

Source:

根据系统历史栈校正本地维护的历史记录
考虑到实际路由场景过于复杂,故定期校正以增强健壮性,如:点击右上角主页按钮、退出后又点击另一个分享链接、页面未使用封装接口等

getRoute(idx) → {History~Route}

Source:

获取路由

Parameters:
Name Type Description
idx number

路由栈下标

Returns:

对应的页面

Type
History~Route

open(route)

Source:

打开新页面

Parameters:
Name Type Description
route History~Route

新页面

replace(route)

Source:

替换当前页

Parameters:
Name Type Description
route History~Route

替换成哪个页面

savePage(idx, wxPage)

Source:

保存页面数据

Parameters:
Name Type Description
idx number

路由栈下标

wxPage

对应的原生页面实例

Type Definitions

Route

Source:
Properties:
Name Type Attributes Description
url string

页面完整路径,e.g. '/pages/index/index?param1=1'

tainted boolean <optional>

实例数据是否已被污染,详见实例覆盖自动恢复功能

wxPage <optional>

对应的微信原生页面实例,恢复页面数据时使用,使用场景:1.实例覆盖自动恢复功能 2.层级过深时,新开页面会替换前一页面,导致前一页面数据丢失,返回时需予以恢复

路由对象

Type:
  • object