- 保留當(dāng)前頁面盈匾,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面己英,除了 tabbar 頁面。
- 使用 wx.navigateBack 可以返回到原頁面。
- 小程序中頁面棧最多十層苟穆。
傳遞參數(shù)
- 使用
object
的屬性url
(string),即要跳轉(zhuǎn)的頁面路徑,路徑后可以帶參數(shù)雳旅。
- 如 'path?key=value&key2=value2'跟磨。
- 參數(shù)與路徑之間使用 ? 分隔;
- 參數(shù)鍵與參數(shù)值用 = 相連攒盈;
- 不同參數(shù)用 & 分隔抵拘;
- 傳遞的參數(shù)在目標(biāo)頁的
onLoad
函數(shù)中使用參數(shù)options
即可通過.屬性
的方式獲取。
接收數(shù)據(jù)
- 使用
object
的屬性events
(Object)型豁,即頁面間通信接口僵蛛,用于監(jiān)聽被打開頁面發(fā)送到當(dāng)前頁面的數(shù)據(jù)∮洌基礎(chǔ)庫 2.7.3 開始支持充尉。
- 方式是為在目標(biāo)頁自定義的事件(譬如
acceptDataFromOpenedPage
)添加一個(gè)在出發(fā)頁里同名的監(jiān)聽器(acceptDataFromOpenedPage
):
# 目標(biāo)頁.js
const eventChannel = this.getOpenerEventChannel()
eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
# 出發(fā)頁.js
wx.navigateTo({
...
events: {
// 為指定事件添加一個(gè)監(jiān)聽器,獲取被打開頁面?zhèn)魉偷疆?dāng)前頁面的數(shù)據(jù)
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
...
},
...
})
發(fā)送數(shù)據(jù)
- 這需要在成功路由后衣形,借助object的接口成功調(diào)用的回調(diào)函數(shù)
success
驼侠,這個(gè)函數(shù)擁有eventChannel
(EventChannel)屬性,可用來與被打開頁面進(jìn)行數(shù)據(jù)發(fā)送谆吴。
#出發(fā)頁.js
wx.navigateTo({
...
success: function(res) {
// 通過eventChannel向被打開頁面?zhèn)魉蛿?shù)據(jù)
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
...
}
...
})
# 目標(biāo)頁.js
onLoad: function(option){
const eventChannel = this.getOpenerEventChannel()
// 監(jiān)聽acceptDataFromOpenerPage事件泪电,獲取上一頁面通過eventChannel傳送到當(dāng)前頁面的數(shù)據(jù)
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data)
})
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者