小程序之页面路由

前言

上一篇简单的了解了小程序的数据绑定,这一回学习小程序的页面路由。

页面路由

小程序中,所有页面的路由都有框架管理,框架以栈的形式维护当前的所有页面。

1 路由方式

路由的触发可以调用API,也可以使用组件 <navigator />
API方式:

  • 打开新页面:wx.navigateTo
  • 页面重定向:wx.redirectTo
  • 页面返回:wx.navigateBack
  • Tab切换:wx.switchTab
  • 重启动:wx.reLaunch

组件方式:

  • <navigator open-type="navigateTo ">
  • 其他同理

2 路由实例 - API跳转

1)打开app.json,在pages最上新增页面:“pages/first/first”,作为主页,再新增 “pages/second/second”,保存
2)打开first.js,新增函数

secondPage() {
    wx.navigateTo({
      url: "/pages/second/second",
      success: result => {},
      fail: () => {},
      complete: () => {}
    });
  }

3)打开first.wxml,绑定事件secondPage,点击后即可跳转页面

<text bindtap="secondPage">前往第二个页面</text>

4)如果要在页面间传递参数,在url末尾使用 ?参数名=*,参数之间用 &

 data: {
    pageIndex: 1,
    blogName: "我只会瞎蒙"
  },
  //...
 secondPage() {
    wx.navigateTo({
      url: "/pages/second/second?pageIndex=" + this.data.pageIndex + "&blogName=" + this.data.blogName,
      success: result => {},
      fail: () => {},
      complete: () => {}
    });
  }

5)打开second.js,在onLoad函数中加载参数

onLoad: function (options) {
    this.setData({
      pageIndex: options.pageIndex,
      blogName: options.blogName
    });
  },

6)打开second.wxml

<text>从第{{pageIndex}}页跳转过来。大家好,我是{{blogName}}</text>

7)跳转后效果
在这里插入图片描述
8)从第二页返回第一页,打开second.js,添加函数backPage

  backPage() {
    wx.navigateBack({
      delta: 1
    });
  }

9)在second.wxml中绑定事件

<text bindtap="backPage">从第{{pageIndex}}页跳转过来。大家好,我是{{blogName}}</text>

PS: navigateBack的参数delta默认1,不填也可以,如果大于当前页面数,将直接返回首页。

3 路由实例 - 组件跳转

<view>
  <navigator url="/pages/second/second?pageIndex={{pageIndex}}&blogName={{blogName}}">组件方式跳转到第二个页面</navigator>
</view>

4 路由实例 - Tab切换

打开app.json,新增3个标签页, “pages/tab/tab1”、“pages/tab/tab2”、“pages/tab/tab3”,tab1作为主页,然后配置tabbar

"tabBar": {
    "color": "#707070",
    "selectedColor": "#2DBB55",
    "backgroundColor": "#FAFAFA",
    "list": [
      {
        "selectedIconPath": "image/main_select.png",
        "iconPath": "image/main.png",
        "pagePath": "pages/tab/tab1",
        "text": "首页"
      },
      {
        "selectedIconPath": "image/depart_select.png",
        "iconPath": "image/depart.png",
        "pagePath": "pages/tab/tab2",
        "text": "功能大全"
      },
      {
        "selectedIconPath": "image/mine_select.png",
        "iconPath": "image/mine.png",
        "pagePath": "pages/tab/tab3",
        "text": "我的"
      }
    ]
  },

到这里,完成配置,效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值