本文摘自PHP中文网,作者小云云,侵删。
因为列表页到详情页是多对一的形式,即列表页的多条数据列表对应的是一个详情页,只是数据不同而;因此,可以在加载列表页时预加载详情页,即创建一个详情页的webview,但是不显示出来,点击列表的时候在通过特定方法触发详情页的事件,获取响应数据,这种做法可以极大程度的缩短响应的时间。实施方法
通过预加载提前加载详情页;
mui.fire 触发详情页面指定事件,调用ajax更新数据;
一、预加载的实现(两种方法):
官方地址
预加载方法一:
通过mui.init方法中的preloadPages参数进行配置。
1 2 3 4 5 6 7 8 9 10 |
|
在使用中,可能用不到那么多的属性,下面是我的使用案例:
1 2 3 4 5 |
|
只需要设置url和id就可以,详情页需要的参数在使用mui.fire的时候传过去;
预加载方法二:
通过mui.preload方法预加载。
1 2 3 |
|
预加载两种方法对比:
1.方法一为异步创建预加载页面,并且可以同时创建多个页面,但是由于是异步的,因此不能立即获取到创建的webview对象,并且需要使用plus.webview.getWebviewById来获取到创建的webview;
2.方法二为同步创建预加载页面,可以在创建后同步获取到webview,即方法二的“page”变量;但是方法二只能同时创建一个预加载的页面;
二、通过mui.fire触发自定义事件
原理:两个同时存在的webview之间可以通过mui.fire方法来触发另一个webview中的自定义事件,因此,我们可以在详情页中创建一个自定义事件,监听列表页中的mui.fire方法。
mui.fire( target , event , data )
target:详情页(列表页中预加载的详情页)的webview;
event:详情页中监听的自定义事件;
data:需要传给详情页的参数;
1.在详情页创建并监听自定义事件“account_bid_detail_fire”:
1 2 3 4 5 6 7 8 |
|
mui.fire从列表页传的参数都在event.detail中,可以输出具体查看;
2.在列表页触发“account_bid_detail_fire”事件:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
接下来,在列表页点击列表的时候就可触发详情页的“account_bid_detail_fire”事件,然后触发详情页的ajax来更新请求的数据;
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程:https://www.jianshu.com/p/e8197d4d9880
相关推荐:
比较总结mui页面跳转方式之间的差异
MUI实现上拉加载和下拉刷新的实例分享
mui js返回刷新页面的方法实例代码
以上就是如何优化mui列表跳转到详情页的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《详情》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者