小程序 导航方式

文章目录

小程序的路由章节并不是需要学习怎么定义路由,因为路由已经在app.json全局配置文件中声明好了。我们需要掌握的就是如何实现page的切换。

基于组件

说明
navigate对应 wx.navigateTowx.navigateToMiniProgram 的功能
redirect对应 wx.redirectTo 的功能
switchTab对应 wx.switchTab 的功能
reLaunch对应 wx.reLaunch 的功能
navigateBack对应 wx.navigateBack 的功能
exit退出小程序,target="miniProgram"时生效

案例分析

  • 目录结构:

在这里插入图片描述

  • mian.wxml文件代码
<!--miniprogram/pages/main/main.wxml-->

<!-- 
    使用navigator点击后去nav1 
    1. 跳转url地址必须以“/”开头
    2. 在跳转的时候可以给目标页面传递参数,
    3. 参数被携带过去后,在目标页面的js文件汇总的onLoad周期中接收,
        编辑器自动加点形参options就是收取到的参数对象
-->
<view>
<navigator url="/pages/nav1/nav1">
    <button>去nav1页面</button>
</navigator>
<navigator url="/pages/nav1/nav1?id=1&name=2">
    <button>传参id=1&name=2去nav1页面</button>
</navigator>
<!-- 
    在没有open-type属性的情况下,url只能是普通的页面地址,不能是tabBar中的地址
    如果要使用tabBar中的地址,必须加上open-type="switchTab"
 -->
<!-- 
    <navigator url="/pages/logs/logs" open-type="switchTab">
    <button>尝试切菜单</button>
    </navigator>
 -->
</view>

  • nav1.js文件代码
// miniprogram/pages/nav1/nav1.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    this.setData({
      id:options.id,
      name:options.name
    })
  },
})
  • nav1.wxml文件代码
<!--miniprogram/pages/nav1/nav1.wxml-->

<text>id={{id}},name={{name}}</text>

  • 运行效果:

在这里插入图片描述

基于api

案例分析

  • nav2.wxml文件代码
<!-- 基于Api形式的导航实现 -->
<view bindtap="tapHandler1">去tab中的index</view>
<view bindtap="tapHandler2">去nav1</view>
<view bindtap="tapHandler3">去nav1</view>
  • nav2.js文件代码
// 编程式导航方式
// wx.switchTab  等于  navigator + open-type=switchTab
tapHandler1: function(){
    wx.switchTab({url: "/pages/index/index"});
},

// wx.navigateTo  等于  navigator
// navigateTo,保留当前页面(目标页面左上角出现“返回”按钮),去应用内其它页面,但不能是tabbar中页面
tapHandler2: function(){
    wx.navigateTo({url: "/pages/nav1/nav1"});
},

// wx.redirectTo  等于  navigator + open-type=redirect
// redirectTo,不保留当前页面(目标页面左上角出现“首页”按钮),去应用内其它页面,但不能是tabbar中页面
tapHandler3: function(){
    wx.redirectTo({url: "/pages/nav1/nav1"});
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗不甘坠落的流星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值