导航:reload() 方法
reload()
方法是 Navigation
接口的方法,它会重新加载当前 URL,并更新历史记录条目列表中提供的任何状态。
语法
js
navigate(options)
参数
options
可选-
包含以下属性的选项对象
state
可选-
开发人员定义的信息,在导航完成后存储在关联的
NavigationHistoryEntry
中,可以通过getState()
检索。它可以是任何数据类型。例如,您可能希望存储页面访问次数以用于分析目的,或者存储 UI 状态详细信息,以便在用户最后离开时准确显示视图。存储在state
中的任何数据都必须是 结构化可克隆的。 info
可选-
开发人员定义的信息,将传递给
navigate
事件,并在NavigateEvent.info
中提供。它可以是任何数据类型。例如,您可能希望根据导航到该内容的方式(向左滑动、向右滑动或返回主页),以不同的动画显示新导航的内容。表示要使用哪个动画的字符串可以作为info
传递。
返回值
包含以下属性的对象
committed
-
一个
Promise
,它将在可见 URL 更改且创建了新的NavigationHistoryEntry
后完成。 finished
-
一个
Promise
,它将在intercept()
处理程序返回的所有承诺都完成时完成。这相当于NavigationTransition.finished
承诺完成时,navigatesuccess
事件触发。
如果导航由于某种原因失败,则其中一个承诺将拒绝。
异常
DataCloneError
DOMException
-
如果
state
参数包含不可结构化克隆的值,则会抛出此异常。
示例
使用 info 和 state
js
async function handleReload() {
await navigation.reload({
info: { animation: "fade-in" },
state: { infoPaneOpen: true },
}).finished;
// Update application state
// ...
}
重新加载页面并添加新的状态项
js
async function handleReload() {
await navigation.reload({
state: { ...navigation.currentEntry.getState(), newState: 3 },
}).finished;
// Update application state
// ...
}
规范
规范 |
---|
HTML 标准 # dom-navigation-reload-dev |
浏览器兼容性
BCD 表仅在浏览器中加载
另请参阅
- 现代客户端路由:导航 API
- 导航 API 说明
- Domenic Denicola 的 导航 API 实时演示