简体中文
预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。
平台差异说明
| App-nvue | HarmonyOS Next | H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 抖音小程序、飞书小程序 | QQ小程序 | 元服务 | 小红书小程序 |
|---|---|---|---|---|---|---|---|---|---|
| √(2.7.12+) | x | √(2.7.12+) | x | x | x | x | x | x | x |
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 预加载页面url |
| success | Function | 否 | 预加载成功完成回调 |
| fail | Function | 否 | 预加载失败回调 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
预加载 /pages/test/test 对应的js文件,不执行页面预渲染逻辑
uni.preloadPage({url: "/pages/test/test"});
预加载nvue页面 /pages/test/test
uni.preloadPage({url: "/pages/test/test"});
注意事项
onLoad,onReady,不触发 onShowuni.reLanuch, uni.switchTab, uni.navigateBack(含Android返回键) 切换页面时,预加载页面不会被销毁,仅触发生命周期 onHideuni.redirectTo 时,预加载页面会被销毁,触发生命周期 onUnload示例
uni.preloadPage({url: "/pages/test/test"}); // 预加载 /pages/test/test 页面(仅触发onLoad,onReady)
uni.navigateTo({url: "/pages/test/test"}); // url匹配,跳转预加载页面(仅触发onShow)
uni.navigateTo({url: "/pages/test/test?a=b"}); // url不匹配,正常打开新页面
HBuilderX 2.7.12+的hello uni-app,在navigator示例和uni ui的日历示例中增加了页面预载示例。
| 元服务 |
|---|
| x |
HarmonyOS Next 不支持
取消预载页面。
unPreloadPage时会销毁该页面,触发生命周期 onUnloadunPreloadPage时不销毁该页面,但该预加载页面不再继续存在,会随着路由变化而销毁