マイクロ手紙アプレットページジャンプAPIの概要と注意事項

まず、ルーティング

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)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数

注意事項:

1、navigateTo、redirectTo唯一のオープン以外のTabBarページ。
navigateTo(現在のページを保持するために使用される、アプリケーション内のページへのジャンプ、ページの元のページに戻るためにwx.navigateBackを使用して原稿を戻すために、小さなプログラムの特に多数、通常推奨wx.navigateToジャンプではありませんページがより速くロードする。ページは、特に長い時間であるとき、それは推奨されません。)
wx.redirectTo(あまりにも多くのページ、ページがプログラムメモリの少ない方、または制限さ5マイクロ層スタックページの手紙までにマイクロ手紙を混雑保持されます。この時点で、我々は(wx.redirectTo.wx.redirectToを選択する検討すべきです) 、現在のページを閉じ、アプリケーション内のページへのジャンプ。そのようなジャンプ)ジャンプを回避することができる前に、ページを実行するためのメモリを占有しますが、ページは、ページの表示時間に戻るの増加、リターン時に再ロードする必要があります
2、switchTabのみオープンTabBarのページ。
(タブバーをページにジャンプし、最良の選択wx.switchTabは()、それはページのすべての非タブバーをオフにします)
3、再起動は任意のページを開くことができます。
(Wx.reLaunch wx.reLaunch()とwx.redirectTo()は、すべてのページのメモリをオフにして、基本的には同じ使用していますが、wx.reLaunch()ターゲットページへのジャンプを禁じます。)
図4に示すように、ページのタブバーの底部はそれがタブバーページとして定義されている限り、ページによって決定され、底部は、タブバーを有しています。
図5に示すように、ページ・パラメータを使用してコールルーティングは、オンロード対象ページで得ることができます。
元の記事を公開 ウォンの賞賛0 ビュー6

おすすめ

転載: blog.csdn.net/weixin_46181363/article/details/104458527