微信小程序 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

相关推荐

  • cnki科研项目申报信息库如何开通(cnki科研项目申报信息库无法使用)

    cnki科研项目申报信息库无法使用 近年来,随着科技的不断发展,cnki科研项目申报信息库已经成为了科研项目申报过程中必不可少的工具。但是,最近我们发现,cnki科研项目申报信息库…

    科研百科 2024年4月2日
    172
  • plm项目管理系统

    项目管理系统是一种用于管理和跟踪项目的工具,可以帮助组织更好地管理项目,提高项目效率和质量。在现代商业环境中,项目管理已经成为了一项非常重要的任务,因为项目的成功不仅仅取决于项目的…

    科研百科 2024年9月30日
    21
  • 协同网络办公

    协同网络办公:让工作更加高效与便捷 随着数字化时代的到来,协同网络办公已经成为了现代企业不可或缺的一部分。在协同网络办公中,各个部门之间可以通过网络进行实时沟通、协作和共享信息,从…

    科研百科 2025年1月5日
    0
  • 科研项目英语演讲稿三分钟

    Dear fellow researchers, Today, I would like to share with you an interesting project that…

    科研百科 2024年8月12日
    37
  • 拉风出品:文件管理十大软件(文件管理软件推荐)

    一款好的文件管理软件能够让办公效率成倍提高。 比如给文件打上不同的文字或颜色标签,同一个界面显示多个硬盘或文件夹、悬浮预览、直接播放等等,有的还可以批量重命名、自动生成文件列表清单…

    科研百科 2022年10月4日
    208
  • 科技项目结题不通过

    科技项目结题不通过的原因和应对策略 随着科技的不断发展,科技项目结题也越来越普遍。然而,并不是所有的科技项目都能够顺利完成结题,有些甚至会面临结题不通过的情况。这种情况可能是由于多…

    科研百科 2024年11月25日
    8
  • 工程项目管理之进度管理指南(工程项目的进度管理)

    进度管理是工程项目管理的重要环节之一,工程进度决定着项目能否在预定的时间内交付,直接关系到项目的经济效益。而目前我国建筑界有这样一种现象:关注的重心普遍在工程质量和成本上,对工程的…

    2022年5月27日
    325
  • 红色物业项目考评内容资料

    红色物业项目考评内容资料 红色物业是一种注重品质、体现社会责任、注重用户体验的物业管理模式。随着物业管理行业的不断发展,红色物业项目已成为物业管理中的一股新兴力量。为了更好地推动红…

    科研百科 2024年12月3日
    1
  • 中外合作办学问答(中外合作办学问答题及答案)

    1,关于中外合作办学,什么是计划内招生和计划外招生? “计划内招生”是纳入国家普通高校招生计划的统招生。 “计划内招生”的中外合作办学项目纳入国家高等学历教育,有国内学校毕业证,学…

    科研百科 2024年4月12日
    131
  • 探索“12345”模式 全面提高党员发展工作质量(发展党员12345制度体系内容)

    高校担负着立德树人、培养青年成才的神圣使命。习近平总书记指出:“‘为谁培养人、培养什么人、怎样培养人’始终是教育的根本问题。”在坚持党要管党、全面从严治党的大背景下,信阳学院牢牢把…

    科研百科 2023年6月14日
    270