微信小程序页面传递参数方法

这篇具有很好参考价值的文章主要介绍了微信小程序页面传递参数方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

        页面跳转方法有很多中,但经常会通过一个页面传递参数给另一个页面,非常的常见。但数据量大的时候,通常用字符串传递,但会显得过于臃肿,下面介绍页面传递参数的各种方式。


一、页面跳转链接携带参数

例如:A跳转到B页面携带参数

特点:只能传递单个页面,数据量少

A页面:
wx.navigateTo({
    url: '/pages/login/login?id=XXX'
});

B页面接收数据
onLoad(options) {
    if (options.id) {
            console.log(options.id)//接收到参数
    }
}

当然,如果过多的参数时候,将会显示url: '/pages/login/login?id=XXX&id2=XXX&id3=XXX...'就会显得很臃肿,不易于维护和修改数据。

二、使用对象进行传递

将过多的数据进行对象化,然后再转成字符类型进行传递,传递之后再换成json格式

特点:只能传递单个页面,数据量可大

A页面:
 handletap: function() {
    var data = JSON.stringify(obj);
    wx.navigataTo({
      url: ‘url?data=’ + data    
    })
}

B页面:
onload: function(option) { 
    var data = JSON.parse(option.data)//传递参数
}
 

 三、监听acceptDataFromOpenerPage事件

监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据

特点:只能传递单个页面,数据量可大

A页面:
 handletap: function() {
    wx.navigateTo({
      url: '/pages/set_up/set_up',
      success: function(res) {
        // 通过eventChannel向被打开页面传送数据
        res.eventChannel.emit('adviser_list', adviser_list)
      }
    })
}

B页面:
onload: function(option) { 
    const eventChannel = this.getOpenerEventChannel()
    // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
    eventChannel.on('adviser_list', function (data) {
      console.log(adviser_list)//传递参数
    });
}

 

四、通过公共js来缓存传递方法

在app.js文件里面,声明一个对象,然后将需要的数值存储进该方法里面,在需要的页面进行调用即可

特点:可以跨页面、多页面使用、关闭小程序自动清空

app.js{
    globalData: {
        adviser_list:"";//数据
    }
}
A页面:
 const App = getApp();
 handletap: function() {
    App.globalData.adviser_list="小明";//重点
    wx.navigateTo({
      url: '/pages/set_up/set_up',
    })
}

B页面:
onload: function(option) { 
    let adviser_lis = App.globalData.adviser_lis//传递的参数
}

五、通过缓存来进行数据传递

通过上一个页面缓存到内存里面,然后在需要的页面进行数据获取,可以跨多页面使用,数据永久有效,但是会增加多余缓存,需要清理,传递少的数据,建议使用前面方法

特点:可以跨页面、多页面使用、增加缓存,关闭小程序不会清空,永久使用

A页面:
 handletap: function() {
    let adviser_list={
        name:1,
        age:100
    }
    wx.setStorageSync('adviser_list',userInfo);//重点
    wx.navigateTo({
      url: '/pages/set_up/set_up',
    })
}

B页面:
onload: function(option) { 
    let adviser_list= wx.getStorageSync('adviser_list')||'';//获得参数,可以在想要的方法里面获取,不一定需要在onload方法里面。
}

还有组件传递参数,以及数据监听传递参数等,将不作过多的介绍,感兴趣的小伙伴可以在文章中寻找查看。


总结

文档主要介绍了页面传递参数的方法,少量的参数单页面使用可以采用方法一、大量的单页面使用可以采用方法二或三,多页面暂时缓存数据可以使用方法四,大量的数据多页面永久使用可以采用方法五。文章来源地址https://www.toymoban.com/news/detail-768550.html

到了这里,关于微信小程序页面传递参数方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序路由以及跳转页面传递参数

    路由 在app.json的pages里面写 \\\"pages/页面/页面\\\" 直接保存pages直接生成非常方便  跳转页面 wx.navigateTo() 保留当前页面,跳转到应用内的某个非tabBar页面。 text bindtap=\\\"daka\\\"点击/text 会保留返回箭头 底部导航跳转在app.json写入即可 传参以及接收参数 1、本地存储 使用方法:和js差不

    2024年02月11日
    浏览(56)
  • uni-app 返回上一个页面并传递参数(微信小程序)

    方法一 问题: 会记住每次返回. 并在下次获取参数时把所有的返回监听进行 全部返回 ( 不确定别人使用时是否会出现此问题 ) 打印示例结果如下: 打印说明: 获取用户信息1: 为每次进入第二个页面 (onload) 请求的数据 监听到事件来自返回的参数: 为第一个页面监听获取的数据 方

    2024年02月09日
    浏览(71)
  • 微信小程序返回上级页面传参的几种方法

    在做微信小程序跳转页面,经常会遇到二级页面要返回上级页面,并且需要携带参数,wx.navigateTo()跳转大家都知道直接在url上面拼接参数,之后再二级页面onLoad(options)里获取,但是返回页面wx.navigateBack()不可以那样做,所以就可以用以下几种方式来做,具体看个人业务适合用

    2024年02月08日
    浏览(88)
  • 猿创征文|微信小程序扫描二维码如何跳转小程序内指定页面并传递参数给目标页面?

    实际项目中,用户通过扫描打印小票上的二维码,自己实现开具发票功能,那么这里就需要用户在扫描小票二维码后,跳转小程序内添加开票信息并提交后台开具发票的页面。 首先二维码的本质就是一个链接地址。 其次登录微信小程序开放平台,设置 扫普通链接二维码打开

    2023年04月08日
    浏览(58)
  • 【面试必会,微信小程序的页面跳转和参数传递 ,程序员必会知识

    index.wxml: 在index.wxml页面添加一个元素,在元素里面使用属性url就可以 运行: 跳转的数据传递 以wx.navigateTo为例: 上面讲述,wx.navigateTo传入的url是跳转的页面(使用相对路径) wx.navigateTo({ url:“pages/home/home” }); 那么参数传递至下一页面,则只需要在路径后面,添加?问号,?

    2024年04月14日
    浏览(65)
  • Web 页面之间传递参数的几种方法

    Web 页面之间传递参数的方法有很多种,下面列出一些常见的方法以及它们的代码示例。 一、前端直接传递参数 1、URL 参数传递(query string):通过 URL 的查询字符串(即问号后面的参数)将参数传递给页面。可以通过 location.search 或 URLSearchParams 对象来获取和解析参数。  2、

    2024年02月01日
    浏览(37)
  • 【微信小程序】小程序页面间传递数据的方法有哪些?

    使用全局变量,getApp().globalData 使用 url 传递参数,options.query 使用缓存,wx.setStorage 事件通知,通过 triggerEvent 触发一个自定义事件,然后在目标页面中通过 bind 监听该事件,参考官网 使用数据库 组件间通信 :如果页面中包含多个组件,可以使用组件间通信来传递数据。通

    2024年02月20日
    浏览(47)
  • vue页面动态生成二维码,扫描二维码跳转到微信小程序,同时传递参数

    最近领导提了个新的需求, 点击表格时,弹出一个二维码,微信扫描此二维码时,跳转到微信小程序,同时将所在行的id(即员工所在公司的id)传过去,这样员工在登录微信小程序时,根据此id就知道是哪个公司的员工登录或者注册 了! 刚开始想的是,直接把小程序的二维

    2024年02月11日
    浏览(82)
  • 微信小程序的跨页面传参以及data-方法的相关细节

    🙂博主:小猫娃来啦 🙂文章核心: 微信小程序的跨页面传参以及data-方法的相关细节 其实在学习新东西的过程中,最快速的方式就是多看官方文档。 很多技术层面的东西,官方文档其实讲的很清楚了。 vue这个渐进式框架在很久以前,是没有多少官方文档供人学习的,但现

    2024年02月11日
    浏览(56)
  • 微信小程序一对多个页面间传递数据进行通信,事件触发的实现方法

    在有些场景下,使用组件间通信或者组件和页面间通信并不可行。比如我需要只有一个websocket实例,并且需要向多个页面传递我接收到的消息。 下面的方法是一个页面向其它页面(触发事件)传递数据,其它页面也可以向这个页面传递数据。也就是可以互相传递。 缺点是,

    2024年02月07日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包