#### uni.preloadPage(OBJECT)

预加载页面，是一种性能优化技术。被预载的页面，在打开时速度更快。

**平台差异说明**

|App-nvue|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序、飞书小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(2.7.12+)|√(2.7.12+)|x|x|x|x|x|


|属性|类型|必填|说明|
|:-:|:-:|:-:|:-:|
|url|string|是|预加载页面url|
|complete|Function|否|预加载成功完成回调|
|fail|Function|否|预加载失败回调|


#### H5 平台

预加载 /pages/test/test 对应的js文件，不执行页面预渲染逻辑
```js
uni.preloadPage({url: "/pages/test/test"});
```

#### App-nvue 平台

预加载nvue页面 /pages/test/test
```js
uni.preloadPage({url: "/pages/test/test"});
```

注意事项
1. App平台仅支持预加载 nvue 页面，执行页面预渲染，预载时触发生命周期 `onLoad`，`onReady`，不触发 `onShow`
2. 打开新页面时，url 完全相同（包含参数）时，优先使用预加载页面，触发生命周期 onShow
3. tabbar页面，仅支持预加载尚未显示过的页面，否则返回 fail，提示 already exists
4. 同一时间，相同 url 仅 preloadPage 一次
5. 当同一个预载页面已被打开(在路由栈)，再次打开相同url时，不再使用该预加载页面，而是打开新的非预载页面
6. `uni.reLanuch`, `uni.switchTab`, `uni.navigateBack`(含Android返回键) 切换页面时，预加载页面不会被销毁，仅触发生命周期 `onHide`
7. 在预载页面使用 `uni.redirectTo` 时，预加载页面会被销毁，触发生命周期 `onUnload`

示例
```js
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的日历示例中增加了页面预载示例。

#### uni.unPreloadPage(OBJECT)

取消预载页面。

1. 仅App-nvue支持
2. 当预载页面未被打开时，使用 `unPreloadPage`时会销毁该页面，触发生命周期 `onUnload`
3. 当预载页面已被打开时，使用 `unPreloadPage`时不销毁该页面，但该预加载页面不再继续存在，会随着路由变化而销毁
