微信小程序 navigator 用来实现页面跳转功能

在微信小程序开发中,navigator 用来实现页面路由功能,比如 A页面 中点击页面打开B页面

1 navigator 默认方式打开新的页面

<navigator url="/pages/code1/navigator/bPage"> <text>打开B页面</text></navigator>

等效于

<navigator url="/pages/code1/navigator/bPage" open-type="navigate"> <text>打开B页面</text></navigator>

微信小程序 navigator 用来实现页面跳转功能

open-type 是指定了页面跳转的方式,默认是 navigate ,页面层叠方式如下

微信小程序 navigator 用来实现页面跳转功能

对应的有点击事件,在JS中打开页面

<view bindtap="openNavigatorBPage" data-index='1'> <text>打开B页面</text></view>

在这里 data-index 是我页面绑定的参数,在对应的方法中通过 currentTarget.dataset.index 方式获取

如果我写的是 data-id ,那么点击事件中获取方式为 currentTarget.dataset.id

openNavigatorBPage:function (options) { //获取绑定的参数 let id = options.currentTarget.dataset.index; wx.navigateTo({ url: '/pages/code1/navigator/bPage?id=' id, }) },

然后 在目标页面中的 onLoad 方法中可以获取这个参数

onLoad: function (options) { let id = options.id; },

2 redirect 替换当前页面

open-type 可取值为 redirect ,就是直接替换当前页面

<!--类似a标签 open-type 跳转方式--><navigator url="/pages/code1/navigator/bPage" open-type="redirect"> <text>打开B页面</text></navigator>

微信小程序 navigator 用来实现页面跳转功能

对应的 js 方法为

wx.redirectTo({ url: '/pages/code1/navigator/bPage?id=' id, })

3 reLaunch 重新加载当前页面

open-type 可取值为 reLaunch ,就是相当于是重新加载了一下当前页面

<navigator url="/pages/code1/navigator/bPage" open-type="reLaunch"> <text>打开B页面</text></navigator>

对应的 js 方法为

wx.reLaunch({ url: '/pages/code1/navigator/bPage?id=' id, })

4 navigateBack 关闭当前页面

可以直接在页面中 使用 navigator 标签嵌套

<navigator open-type="navigateBack"> <text>关闭页面</text></navigator>

等效于

<view bindtap="closeBPage" data-index='1'> <text>关闭B页面</text></view>

closeBPage: function () { wx.navigateBack() },

5 navigateBack 关闭当前页面 并携带参数

A页面通过wx.navigateTo跳入到B页面,然后B页面执行wx.navigateBack返回到A页面时候传给A页面参数

A页面中定义接收

Page({ /** * 页面的初始数据 */ data: { param: undefined, }, /** * 生命周期函数--监听页面显示 */ onShow: function () { let param = this.data.param; if (param) { //有回传参数 处理页面业务逻辑 } },); //打开B页面 openNavigatorBPage: function (options) { //获取绑定的参数 let id = options.currentTarget.dataset.index; wx.re({ url: '/pages/code1/navigator/bPage?id=' id, }) },

在B页面中,关闭B页面的时候,设置回传参数

closeBPage: function () { //getCurrentPages()函数是用来获取当前页面栈的实例, //返回的是一个按栈的顺序排列的数组pages_arr,且数组中的第一项为首页,最后一项为当前页。 //获取当前页面js里面的pages里的所有信息。 let pages = getCurrentPages(); //pages[pages.length - 2]是指的上一页,然后获取到上一个页的page对象后直接执行修改param的操作,这样就实现了在B页面修改A页面数据的功能 let prevPage = pages[pages.length - 2]; prevPage.setData({ param: 111, // 设置需要传递的参数 }) wx.navigateBack({ delta: 1 }) },


完毕

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月5日 上午9:03
下一篇 2023年4月5日 上午9:19

相关推荐

  • 客户关系管理的好处

    客户关系管理(CRM)是一种通过收集、分析和利用客户数据来提升客户满意度、增加销售和提高企业效益的管理方法。在商业世界中,客户关系管理的重要性不言而喻。本文将探讨CRM的好处,包括…

    科研百科 2024年9月22日
    25
  • 医学科研项目的可行性报告医学科研项目的可行性报告

    医学科研项目的可行性报告 随着医学的不断发展,医学科研项目已经成为了医学研究中必不可少的一部分。医学科研项目不仅可以为医生提供更好的工具和技能,还可以为医学研究提供更多的数据和信息…

    科研百科 2024年7月9日
    61
  • 在线协同办公平台开发

    在线协同办公平台开发 随着现代数字化时代的到来,越来越多的企业开始采用在线协同办公平台来提高工作效率和团队协作能力。在线协同办公平台不仅可以实现公司内部的协作,还可以与外部合作伙伴…

    科研百科 2024年9月21日
    24
  • 青山区钢花村街道:创新社区管理模式,持续提升基层治理效能(社区管理创新方案)

    荆楚网(湖北日报网)讯(记者 林琳 通讯员 李轶)今年以来,青山区钢花村街道将深化社区绩效管理综合考评作为提升基层治理效能的重点工作狠抓落实推进。 近期该街道出台了“制定社区绩效管…

    科研百科 2023年3月9日
    240
  • 8月特辑 – 预推免翻身战,这一仗我教你怎么赢(推免 预推免)

    八月,是保研青黄不接的阶段,为什么这样说呢?夏令营逐渐落下帷幕,但预推免还未全面开启。这个时间的保研er们大多分为以下这几类: 有拿到夏令营offer,但在焦虑优营效力或是担心保研…

    科研百科 2024年4月12日
    76
  • 比赛项目管理系统

    比赛项目管理系统 随着现代竞技体育的不断发展,比赛项目的数量和质量也在不断提高。为了更好地管理比赛项目,许多比赛组织方都开发了自己的比赛项目管理系统。这些系统可以帮助组织者更好地管…

    科研百科 2024年12月19日
    0
  • ai智能辅助工具

    AI智能辅助工具: 让工作更加轻松 随着科技的不断发展,AI智能辅助工具已经成为现代职场中不可或缺的一部分。这些工具不仅能够提高工作效率,还能够为我们提供许多便利和帮助。在本文中,…

    科研百科 2024年10月14日
    5
  • 医疗项目权限管理系统

    医疗项目权限管理系统 随着医疗行业的不断发展,医疗项目权限管理系统已经成为了医院管理中不可或缺的一部分。医疗项目权限管理系统可以帮助医院更好地管理医疗项目,提高安全性和效率,同时也…

    科研百科 2024年12月23日
    2
  • 芯片企业诺领科技“倒闭”调查(诺领科技待遇)

    《科创板日报》7月28日讯(记者 田箫 武超),近日有多家媒体报道称,芯片企业诺领科技在拖欠5月及6月员工工资后,“已于近期倒闭”。公开信息显示,该公司于2020年8月完成2亿元B…

    科研百科 2024年5月16日
    126
  • 上饶市委领导班子一览表最新

    上饶市委领导班子一览表最新 近年来,江西省上饶市的政治和经济环境都得到了快速的发展。在这座城市中,市委领导班子也在不断地调整和变化。最新的上饶市委领导班子一览表显示,目前该市的市委…

    科研百科 2024年10月8日
    47