mui幾種頁(yè)面跳轉(zhuǎn)方式對(duì)比【轉(zhuǎn)】

[http://blog.csdn.net/uikoo9/article/details/44676963]
【幾種打開頁(yè)面的方式】
1.初始化時(shí)創(chuàng)建子頁(yè)面
2.直接打開新頁(yè)面
3.預(yù)加載頁(yè)面

【示例】
1.初始化時(shí)創(chuàng)建子頁(yè)面
<code>
mui.init({
subpages: [{
url: your - subpage - url, //子頁(yè)面HTML地址,支持本地地址和網(wǎng)絡(luò)地址
id: your - subpage - id, //子頁(yè)面標(biāo)志
styles: {
top: subpage - top - position, //子頁(yè)面頂部位置
bottom: subpage - bottom - position, //子頁(yè)面底部位置
width: subpage - width, //子頁(yè)面寬度,默認(rèn)為100%
height: subpage - height, //子頁(yè)面高度,默認(rèn)為100%
......
},
extras: {} //額外擴(kuò)展參數(shù)
}]
});
</code>

2.直接打開新頁(yè)面

<code>
mui.openWindow({
url: new - page - url,
id: new - page - id,
styles: {
top: newpage - top - position, //新頁(yè)面頂部位置
bottom: newage - bottom - position, //新頁(yè)面底部位置
width: newpage - width, //新頁(yè)面寬度,默認(rèn)為100%
height: newpage - height, //新頁(yè)面高度,默認(rèn)為100%
......
},
extras: {
..... //自定義擴(kuò)展參數(shù),可以用來處理頁(yè)面間傳值
}
show: {
autoShow: true, //頁(yè)面loaded事件發(fā)生后自動(dòng)顯示,默認(rèn)為true
aniShow: animationType, //頁(yè)面顯示動(dòng)畫,默認(rèn)為”slide-in-right“;
duration: animationTime //頁(yè)面動(dòng)畫持續(xù)時(shí)間,Android平臺(tái)默認(rèn)100毫秒,iOS平臺(tái)默認(rèn)200毫秒;
},
waiting: {
autoShow: true, //自動(dòng)顯示等待框,默認(rèn)為true
title: '正在加載...', //等待對(duì)話框上顯示的提示內(nèi)容
options: {
width: waiting - dialog - widht, //等待框背景區(qū)域?qū)挾龋J(rèn)根據(jù)內(nèi)容自動(dòng)計(jì)算合適寬度
height: waiting - dialog - height, //等待框背景區(qū)域高度,默認(rèn)根據(jù)內(nèi)容自動(dòng)計(jì)算合適高度
......
}
}
})
</code>

3.預(yù)加載新頁(yè)面

<code>
// 方式1
mui.init({
preloadPages: [{
url: prelaod - page - url,
id: preload - page - id,
styles: {}, //窗口參數(shù)
extras: {}, //自定義擴(kuò)展參數(shù)
subpages: [{}, {}] //預(yù)加載頁(yè)面的子頁(yè)面
}]
});

// 方式2
var page = mui.preload({
url: new - page - url,
id: new - page - id, //默認(rèn)使用當(dāng)前頁(yè)面的url作為id
styles: {}, //窗口參數(shù)
extras: {} //自定義擴(kuò)展參數(shù)
});
</code>

【一些區(qū)別】

1.子頁(yè)面和非子頁(yè)面

以上三種方式中,2,3打開的頁(yè)面非子頁(yè)面,

區(qū)別是子頁(yè)面相當(dāng)于html中的iframe,而非子頁(yè)面相當(dāng)于新開了一個(gè)瀏覽器窗口加載了一個(gè)html

2.子頁(yè)面適用于側(cè)滑菜單

子頁(yè)面有其有點(diǎn),特別適用與index.html+list.html這種情況,

如果用index.html(主頁(yè)面)+list.html(子頁(yè)面)實(shí)現(xiàn)的話,當(dāng)主頁(yè)面右滑時(shí)子頁(yè)面會(huì)自動(dòng)跟隨,

而用index.html(主頁(yè)面)+list.html(新頁(yè)面)實(shí)現(xiàn)的話,主頁(yè)面右滑,新頁(yè)面不右滑,還得單獨(dú)處理新頁(yè)面。

3.子頁(yè)面實(shí)用頻繁切換的情況

如果頻繁左滑右滑,在配置較低的手機(jī)上會(huì)出現(xiàn)list.html遮住index.html的情況,

采用子頁(yè)面模式就不會(huì),采用新頁(yè)面模式幾率很大。

4.子頁(yè)面適用與下拉刷新和上拉加載

之前做大下拉刷新的時(shí)候,采用的是新頁(yè)面的形式,

按照官網(wǎng)教程,怎么搞都不成功,

后來看了下源碼,發(fā)現(xiàn)下拉刷新必須采用子頁(yè)面的形式,

也就是你的list.html必須是index.html的子頁(yè)面,才可以下拉刷新。

5.新頁(yè)面適用于新頁(yè)面

open一個(gè)新頁(yè)面,適用于查看詳情之類的,需要打開一個(gè)新頁(yè)面的情況,

并且mui自己封裝了新頁(yè)面的back方法,你就不需要去操心了。

6.預(yù)加載頁(yè)面的兩種方式

第一種是在初始化的時(shí)候預(yù)加載,

這種情況適合在你這個(gè)頁(yè)面在很久之后才會(huì)用,

如果你要立即到的頁(yè)面并使用,那么你會(huì)得到null。

第二種方式類似與open,

個(gè)人感覺沒有什么太大的區(qū)別,

唯一的區(qū)別是open就直接打開了,

preload只是加載,你可以之后選擇打開的時(shí)機(jī)。

7.總結(jié)

需要下拉刷新上拉加載請(qǐng)使用子頁(yè)面,

需要打開一個(gè)新頁(yè)面請(qǐng)使用新頁(yè)面方式,

需要加載一個(gè)頁(yè)面但是暫時(shí)不使用請(qǐng)使用預(yù)加載方式。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評(píng)論 19 139
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,189評(píng)論 1 92
  • MUI背景介紹 MUI是一套前端框架,由DCLOUD公司研發(fā)而成,提供大量H5和js語(yǔ)言組成的組件,大大提高了開發(fā)...
    jackzhouyu閱讀 29,891評(píng)論 2 76
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,285評(píng)論 6 342
  • 如何解決分布式系統(tǒng)數(shù)據(jù)事務(wù)一致性問題(HBase加Solr) - 王安琪 - 博客園http://www.cnbl...
    葡萄喃喃囈語(yǔ)閱讀 518評(píng)論 0 0

友情鏈接更多精彩內(nèi)容