首页前端开发JavaScript微信小程序页面间传值的实现方法示例

微信小程序页面间传值的实现方法示例

时间2024-02-01 08:58:03发布访客分类JavaScript浏览832
导读:收集整理的这篇文章主要介绍了微信小程序页面间传值的实现方法示例,觉得挺不错的,现在分享给大家,也给大家做个参考。 小程序页面间传值大家晚上好,说晚上好是因为是在晚上写的,说这句话是因为这...
收集整理的这篇文章主要介绍了微信小程序页面间传值的实现方法示例,觉得挺不错的,现在分享给大家,也给大家做个参考。

小程序页面间传值

大家晚上好,说晚上好是因为是在晚上写的,说这句话是因为这句话开篇不那么突然。那么小程序的页面间传值,在我使用这段时间里,我就非常的主观的把它们分为wx.navigateTo和非wx.navigateTo的,因为wx.navigateTo有一个事件参数event,我从当前页跳转到下一页,如果需要能返回,我都用的wx.navigateTo,那这个event作用嘛就是可以接收,下一页返回回来的参数的。像🦐面这样:

index.js

wx.navigateTo({
  url: url,  events: {
        // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据    acceptDataFromOPEnedPage: (data) =>
 {
 // 这个方法是随便命名的,没有多少要求,不过被打开的页面emIT的时候第一个参数要写这个方法名      console.LOG('从隔壁扔来的酸豆角馅儿的包子',data)    }
,  }
,  success: function (res) {
    // 通过eventChannel向被打开页面传送数据    // res.eventChannel.emit('acceptDataFromOpenerPage', {
 data: 'test' }
)  }
}
    )

gebi.js

// 确认选择confirm() {
  const eventChannel = this.getOpenereventChannel()  // 这里应该是微信自带的方法,直接用,妥妥的  eventChannel.emit('acceptDataFromOpenedPage', data)  // 上一个页面event里接收参数的方法名  wx.navigateBack()   // 返回上一个页面}
    

这两个操作就完成了类似于vue2.x的父子组件传值,这个emit简直一摸一样。

那怎么向下一个页面传值呢?在不使用Store,storage的时候,可以通过Url后面带参的方式还有就是上面wx.navigateTo的success回调。虽然success回调我没有用过,但是看了一下感觉非常像我用webworker的时候向子线程里面传值和子线程向主线程传值时,主线程和子线程对数据的接收方式。说白了我觉得就是'监听'(addeventlistener)  (0o-_^o)
这里要提一嘴,URL路径的前面就是pages的前面在跳转的时候带/,就是这样

wx.navigateTo({
  url: '/pages/index/index'}
    )

小程序的URL传值

小程序的URL传值,跟我们普通的路由带参时一样的,都是后面带问号(?)和且符号(& ),但是要分为基本类型的数据传值和引用类型的数据传值。普通的就下面这样儿:

wx.navigateTo({
      url: '/pages/index/index?page=/pages/home/home&
id=0077FF'}
    )

是的你没有看错,就是可以这么传这么个值'/pages/home/home',别的特殊字符应该是要转一下吧,没试过。

小程序的URL传对象

那传个对象或者数组的话要:

传:先转字符串,在编码。

收:先解码,在转对象。

data = {
	name: '包子',  type: '牛肉粉丝'}
wx.navigateTo({
      url: `/pages/index/index?page=/pages/home/home&
params=${
encodeURIcomponent(JSON.stringify(data))}
`}
    )
onLoad (options) {
	const {
page}
     = options;
	const params = JSON.parse(decodeURIComponent(options.params))}
    

嗯~就这样传,没得错。

提一嘴store

我这个项目用的mobx,在mobx里面的拿到的数组的数据就变得很奇怪,不明原因解决方法是。mobx里面有toJS()的方法,用一下就好了。

import {
 toJS }
     from 'mobx-miniPRogram';
    let value = toJS(xxxx)

旋转跳跃

关于跳转,小程序的官网说的很清楚了,我在这里就做个表格吧。

wx.navigateTo 跳转到某页面,可以返回,页面栈最多10层,event内部方法可以获取下一页面返回的数据
wx.navigateBack 返回上一页或者多个页面,getcurrentPages(没用过,都是直接wx.navigateBack()用的)可获取当前页面栈
wx.reLaunch 关闭所有页面,并直接跳转到某一个页面
wx.redirectTo 关闭当前页面,并直接跳转到某一个页面

wx.switchTab. -0-0----> 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面(官网原话)

关于EventChannel,就是上面说的页面间传值,我也就用了emit,剩下的off,on,once这些我没用过,不好讲因为没得场景带入不好理解,我估摸着也许可能猜测哈能做发布订阅模式来写一些东西。

两个表格是不是觉得分的很清,嘿嘿嘿。其实是我markdown的表格没用好,分开感觉居然更合适。

总结

到此这篇关于微信小程序页面间传值的文章就介绍到这了,更多相关微信小程序页面间传值内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • 微信小程序 页面传值详解
  • 微信小程序实现页面跳转传值以及获取值的方法分析
  • 微信小程序自定义组件传值 页面和组件相互传数据操作示例
  • 微信小程序中子页面向父页面传值实例详解
  • 微信小程序 页面跳转如何实现传值
  • 微信小程序实现两个页面传值的方法分析
  • 微信小程序页面间传值与页面取值操作实例分析
  • 微信小程序 页面跳转传值实现代码
  • 微信小程序实现页面跳转传值的方法
  • 微信小程序页面传值实例分析

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 如何在微信小程序实现一个幸运转...下一篇:关于vuex强刷数据丢失问题解析猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 微信小程序页面间传值的实现方法示例
本文地址: https://pptw.com/jishu/595190.html
node.js利用express自动搭建项目的全过程 asp.net 简便无刷新文件上传系统

游客 回复需填写必要信息