微信小程序之路由

微信小程序开发过程中,很重要的一个就是路由,毕竟有很多跳转的地方是需要使用到路由,小程序中路由就是页面路由,在小程序中所有页面的路由全部由框架进行管理。

提到小程序路由就不得不讲一个页面栈,框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:

微信小程序之路由

查看当前页面栈实例getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。

注意:

不要尝试修改页面栈,会导致路由以及页面状态错误。

不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

微信小程序之路由

这个函数就是查看当前页面栈的信息,而且只能看不能修改。

一、路由方式

对于路由的触发方式以及页面生命周期函数如下:

微信小程序之路由

1、打开新页面

调用 API wx.navigateTo 或使用组件 <navigator>。通常就是正常的打卡新页面,相当于网页上a链接。打开新页面有两种方式可以,基本上所有的路方式都有两种方式。

Api实例如下:

<view>
<button>打开新页面/<button>
/<view>

业务代码如下:

Page({
openNew:function(){
wx.navigateTo({
url: '../test/test'
})
}
})

效果如下:

微信小程序之路由

组件打开新页面

<view>
<navigator>打开新页面/<navigator>
/<view>

2、页面重定向

调用 API wx.redirectTo 或使用组件 <navigator>。页面重定向后是无法返回上一个页面的。

api实例如下:

openNew:function(){
wx.redirectTo({
url: '../test/test'
});
}

效果如下:

微信小程序之路由

组件方式

<view>
<navigator>打开新页面/<navigator>
/<view>

3、页面返回

调用 API wx.navigateBack 或使用组件<navigator>或用户按左上角返回按钮。这个一般用的比较少毕竟左上角有返回按钮。/<navigator>

实例如下:

<button>返回上一页/<button>
<navigator>返回上一页/<navigator>

业务代码如下:

// pages/test/test.js
Page({
backBefore: function() {
wx.navigateBack({
url: '../index/index'
});
}
})

效果如下:

微信小程序之路由

4、Tab 切换

调用 API wx.switchTab 或使用组件 <navigator> 或用户切换 Tab。这个主要就是用于tab页的切换就是tabbar的切换,顶部菜单切换。

实例如下:


<view>
<button>tab切换/<button>
<navigator>tab切换/<navigator>
/<view>

业务代码如下:

//index.js
//获取应用实例
const app = getApp()
Page({
openTab:function(){
wx.switchTab ({
url: '../logs/logs'
});
}
})

效果如下:

微信小程序之路由

5、重启动

调用 API wx.reLaunch 或使用组件 <navigator>。重启动和页面重定向类似,不同的是重启动会关闭所有页面在打开目标页面。

实例如下:

<button>重启动logs页面/<button>
<navigator>重启动logs页面/<navigator>

业务代码如下:

// pages/test/test.js
Page({
backBefore: function() {
wx.reLaunch({
url: '../logs/logs'
});
}
})

效果如下:

微信小程序之路由

注意:

微信小程序之路由


分享到:


相關文章: