一、小程序路由分類?
1.Tab 切換 wx.switchTab(Object object)
跳轉(zhuǎn)到 tabBar 頁面,并關(guān)閉其他所有非 tabBar 頁面,這個api只能跳轉(zhuǎn)到底部導(dǎo)航設(shè)置的幾個頁面,它是不能跳轉(zhuǎn)到其他單獨(dú)頁面的。
2.打開新頁面 wx.navigateTo(Object object)
保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面。但是不能跳到 tabbar 頁面。使用 wx.navigateBack 可以返回到原頁面。小程序中頁面棧最多十層。
3.頁面重定向 wx.redirectTo(Object object)
關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面。但是不允許跳轉(zhuǎn)到 tabbar 頁面。
4.重啟動 wx.reLaunch(Object object)
關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個頁面
5.頁面返回 wx.navigateBack(Object object)
關(guān)閉當(dāng)前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages 獲取當(dāng)前的頁面棧,決定需要返回幾層。
<navigator url="/pages/detail/detail" open-type='navigate' style='border:1px solid red;' >進(jìn)入非tab頁</navigator>
<navigator url="/pages/index/index" open-type='switchTab' >進(jìn)入首頁(tab頁)</navigator>
<navigator url="/pages/index/index" open-type='switchTab' >進(jìn)入首頁(tab頁)</navigator>
<navigator open-type='navigateBack' >回退</navigator>
navigateTo, redirectTo 只能打開非 abBar 頁面。
switchTab 只能打開 tabBar 頁面。
reLaunch可以打開任意頁面, 但是沒有返回按鈕,需要定義一個可以點(diǎn)擊回退的按鈕。
頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。
調(diào)用頁面路由帶的參數(shù)可以在目標(biāo)頁面的onLoad中獲取。
二、路由如何傳參?
從列表頁進(jìn)入詳情頁時,需要傳遞列表被點(diǎn)擊項目的 id 至詳情頁,方法:
在列表頁通過data-id='{{item.id}}'給各個項目綁定一個 id ;
在詳情頁通過 onload 拿到 id;
<view class="list" >
<view class='box' wx:for='{{list}}' wx:key='{{index}}' data-id='{{item.id}}' bindtap='goDetail'>
<image src='{{item.img}}'></image>
<view class='tip'>
<text>{{item.title}}</text>
<text class='price'>¥{{item.price}}</text>
</view>
</view>
</view>
// 進(jìn)入詳情頁時 傳遞 id
goDetail (e) {
console.log(e.currentTarget.dataset.id),
wx.navigateTo({
url: `/pages/detail/detail?id=${e.currentTarget.dataset.id}`,
})
},
如果感覺有幫助留下一個寶貴的贊或者給小編一個贊賞!??!