小程序页面跳转及返回总结

45 篇文章 0 订阅
38 篇文章 6 订阅

bug
tabbar 页面离开均执行 onHide ,
二级页面前进执行 onHide ,后退执行 onUnload

页面栈

let pages = getCurrentPages();    //获取当前页面信息栈
pages.length为页面栈层数(包括当前页,如果是一进来第一个页面,则为1let prevPage = pages[pages.length-2]     //获取上一个页面信息栈(pages为数组,所以-2)

在这里插入图片描述

1、跳转方式

在这里插入图片描述

  1. wx.switchTab(Object object)
    跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

  2. wx.reLaunch(Object object)
    基础库 1.1.0 开始支持,低版本需做兼容处理。
    关闭所有页面,打开到应用内的某个页面

  3. List wx.redirectTo(Object object)
    关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面

  4. wx.navigateTo(Object object)
    保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。
    使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。
    只有这个页面有返回按钮

2、普通页面跳转并携带参数

 wx.navigateTo({
        url: `/pages/circle_detail/circle_detail?id=${id}`        // 携带参数
      })
 /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.id);          // 接收参数
  },

3、页面返回不刷新并携带参数

在返回前将参数存在本地,返回后从本地取出

// 点击话题,返回创建圈子页面
  back(e) {
    // 0 不参与  1 新话题  其他 选中的话题
    let val = e.currentTarget.dataset.val;
    let topic;
    console.log(val);
    if (val == 0) {
      topic = ''
    } else if (val == 1) {
      topic = this.data.searchVal
    } else {
      topic = val
    }
    wx.setStorageSync('topic', topic)   //先存储,再返回
    wx.navigateBack({
      delta: 1,  //返回的层数
    })

  },
 /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let topic=wx.getStorageSync('topic')
    console.log(topic);
  },

4、返回上一页并刷新页面或刷新组件

情况一 返回使上一个页面刷新,可以将初始化数据请求接口放在onshow(),而不是onload ()
情况二 返回使上一个页面中的组件刷新
例如:页面关系 a页面中组件a1,跳转b页面,返回a1刷新

// a页面定义一个变量showCommy控制组件a1显示隐藏
 <com-my wx:if="{{showCommy}}"></com-my>
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      showCommy: true
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    this.setData({
      showCommy: false
    })
  },
// a1组件,在ready()中调初始化数据接口
ready() {
    request('circle/circleList', {
      condition: 2
    }).then(data => {
      console.log(data)  // 成功回调
      this.setData({
        list: data.list
      })
    })
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小曲曲

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

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

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

打赏作者

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

抵扣说明:

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

余额充值