新聞中心
路由
uni-app頁面路由為框架統(tǒng)一管理,開發(fā)者需要在pages.json里配置每個(gè)路由頁面的路徑和頁面樣式。類似的小程序在app.json中配置頁面路由相同。所以uni-app的路由用法與Vue Router不同,如仍希望采用Vue Router方式管理路由,可在插件市場搜索Vue-Router。

夏津網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
路由路由
uni-app有兩種頁面路由重定向方式:使用導(dǎo)航器組件擴(kuò)展,調(diào)用API重定向。
頁面棧
框架以棧的形式管理當(dāng)前所有頁面,當(dāng)發(fā)生路由切換的時(shí)候,頁面棧的表現(xiàn)如下:
| 路由方式 | 頁面棧表現(xiàn) | 觸發(fā)時(shí)機(jī) |
|---|---|---|
| 初始化 | 新頁面入棧 | uni-app:的第一個(gè)頁面 |
| :新頁面 | 新頁面入棧 | 調(diào)用API uni.navigateTo ,使用組件 |
| 頁面重啟 | 當(dāng)前頁面出棧,新頁面入棧 | 調(diào)用API uni.redirectTo ,使用組件 |
| 頁面返回 | 頁面不斷出棧,直到目標(biāo)返回頁 | 調(diào)用API uni.navigateBack ,使用組件 |
| 標(biāo)簽切換 | 頁面全部出棧,只留下新的標(biāo)簽頁面 | 調(diào)用API uni.switchTab ,使用組件 |
| 重加載 | 頁面全部出棧,只留下新的頁面 | 調(diào)用API uni.reLaunch ,使用組件 |
運(yùn)行環(huán)境判斷
開發(fā)環(huán)境和生產(chǎn)環(huán)境
uni-app可通過process.env.NODE_ENV判斷當(dāng)前環(huán)境是開發(fā)環(huán)境還是生產(chǎn)環(huán)境。一般用于連接測試服務(wù)器或生產(chǎn)服務(wù)器的動(dòng)態(tài)切換。
- 在HBuilderX中,點(diǎn)擊“運(yùn)行”編譯出來的代碼是開發(fā)環(huán)境,點(diǎn)擊“發(fā)行”編譯出來的代碼是生產(chǎn)環(huán)境
- cli模式下,是通行的編譯環(huán)境處理方式。
if(process.env.NODE_ENV === 'development'){
console.log('開發(fā)環(huán)境')
}else{
console.log('生產(chǎn)環(huán)境')
}如果你需要自定義更多環(huán)境,某種測試環(huán)境:
- 假設(shè)只需要對單一平臺(tái)配置,可以的package.json中配置,在HBuilderX的運(yùn)行和發(fā)行菜單里會(huì)多一個(gè)出來。https://uniapp.dcloud.io/collocation/package
- 如果是針對所有平臺(tái)配置,可以在VUE-config.js中配置。https://uniapp.dcloud.io/collocation/vue-config
快捷代碼塊
HBuilderX中敲入代碼塊uEnvDev,uEnvProd可以快速生成對應(yīng)development,production的運(yùn)行環(huán)境判定代碼。
// uEnvDev
if (process.env.NODE_ENV === 'development') {
// TODO
}
// uEnvProd
if (process.env.NODE_ENV === 'production') {
// TODO
}判斷平臺(tái)
平臺(tái)判斷有2種場景,一種是在編譯期判斷,一種是在運(yùn)行期判斷。
- 編譯期判斷編譯期判斷,即條件編譯,不同平臺(tái)在編譯出包后已經(jīng)是不同的代碼。詳見:條件編譯
// #ifdef H5
alert("只有h5平臺(tái)才有alert方法")
// #endif如上代碼只會(huì)編譯到H5的發(fā)行包里,其他平臺(tái)的包不會(huì)包含如上代碼。
- 運(yùn)行期診斷運(yùn)行期判斷是指代碼已經(jīng)打入包中,仍然需要在運(yùn)行期判斷平臺(tái),此時(shí)可使用uni.getSystemInfoSync().platform判斷客戶端環(huán)境是Android,iOS還是小程序開發(fā)工具(在百度小程序開發(fā)工具,微信小程序開發(fā)工具,支付寶小程序開發(fā)工具中使用uni.getSystemInfoSync().platform返回值重置devtools)。
switch(uni.getSystemInfoSync().platform){
case 'android':
console.log('運(yùn)行Android上')
break;
case 'ios':
console.log('運(yùn)行iOS上')
break;
default:
console.log('運(yùn)行在開發(fā)者工具上')
break;
}如有必要,也可以在條件編譯里自己定義的一個(gè)變量,賦值。在后續(xù)運(yùn)行代碼中動(dòng)態(tài)判斷環(huán)境。
本文題目:創(chuàng)新互聯(lián)UNI-APP教程:uni-app 路由
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cohsohc.html


咨詢
建站咨詢
