まず、ルーティング
1、wx.switchTab(Objectオブジェクト)
近くのページ、および他のすべての非TabBarのページへのTabBarジャンプ
サンプルコード
{
"tabBar": {
"list": [{
"pagePath": "index",
"text": "首页"
},{
"pagePath": "other",
"text": "其他"
}]
}
}
wx.switchTab({
url: '/index'
})
2、wx.reLaunch(Objectオブジェクト)
ページを開くには、アプリケーション内のすべてのページを閉じます
サンプルコード
wx.reLaunch({
url: 'test?id=1'
})
// test
Page({
onLoad (option) {
console.log(option.query)
}
})
3、wx.redirectTo(Objectオブジェクト)
アプリケーション内のページにジャンプし、現在のページを閉じます。しかし、ページへのタブバージャンプを許可していません。
サンプルコード
wx.redirectTo({
url: 'test?id=1'
})
4、wx.navigateTo(Objectオブジェクト)
現在のページを保持して、アプリケーション内のページにジャンプします。しかし、タブバーのページをジャンプしません。使用wx.navigateBackは、元のページに戻ることができます。アプレットページは10層に積み重ね。
サンプルコード
wx.navigateTo({
url: 'test?id=1',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
someEvent: function(data) {
console.log(data)
}
...
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
}
})
//test.js
Page({
onLoad: function(option){
console.log(option.query)
const eventChannel = this.getOpenerEventChannel()
eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
eventChannel.emit('someEvent', {data: 'test'});
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data)
})
}
})
5、wx.navigateBack(Objectオブジェクト)
前のページまたはマルチレベルページに現在のページを閉じます。getCurrentPagesにより、現在のページのスタックを取得することができ、意思決定は、いくつかの層を返却する必要があります。
サンプルコード
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码
// 此处是A页面
wx.navigateTo({
url: 'B?id=1'
})
// 此处是B页面
wx.navigateTo({
url: 'C?id=1'
})
// 在C页面内 navigateBack,将返回A页面
wx.navigateBack({
delta: 2
})
6、のEventChannel
ページ間のイベント通信チャネル
方法
EventChannel.emit(string eventName, any args)
触发一个事件
EventChannel.on(string eventName, EventCallback fn)
持续监听一个事件
EventChannel.once(string eventName, EventCallback fn)
监听一个事件一次,触发后失效
EventChannel.off(string eventName, EventCallback fn)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数