在微信小程序的开发中,我们会经常遇到页面间数据传递或者相互影响的问题。在实际的开发过程中,可以通过以下几种方法来实现。

方法一:使用全局变量

全局变量实际上是定义了一个全局的对象,并在每个页面中引入。

在初始化代码的时候,小程序会读取一个 app.js的文件,在这里我们可以定义我们所需要的全局变量。

然后在页面中,可以通过 getApp()方法获取到全局应用对象,可以对全局变量进行读取并更改:

由于 app.js在项目中是用来做基础配置的,因此不建议将很多变量放在这里配置。一般情况下会将一些持久化的常量配置在这里,对于经常需要变动的量不建议用这个方法。

方法二:使用本地缓存

本地缓存是微信小程序提供的一个功能, 可以将用户产生的数据做本地的持久化,类似于 NoSQL,可以进行读取和修改的操作。

那么在不同的页面之间,如何利用它,进行数据的交互呢?

假设我们在 A 页面保存了用户的信息。

这样做,这个数据就存在了本地。当在 B 页面需要使用的时候,可以直接的获取到数据池中的数据,并进行 CRUD 操作:

需要注意的是,在 回到 A 页面的时候,小程序需要重新读取数据。这时候,可以选择放在生命周期的 onShow中对数据重新加载

方法三:父级往子级页面(模板)的数据传递

我们通常会在页面之间进行跳转、重定向的操作。 这时候,我们可以选择将部分数据放在 url里面,并在新页面 的时候进行初始化。

在 D 页面中,我们可以这样接收到到所传进来的参数:

wx.navigateTo和 wx.redirectTo不允许跳转到 tab 所包含的页面,只能用 wx.switchTab跳转。需要注意的是, wx.switchTab中的 url不能传参数。

微信新提供的 wx.reLaunch接口可以传入参数。

另外,在页面中我们通常会用到一些组件模板,因此在父子之间也会有相应的数据传递。

使用 name属性,作为模板的名字。然后在这里面使用 is属性,声明需要的使用的模板。

然后将模板所需要的 data传入,如:

传入模板的除了变量,还可以是事件方法对象。例如,模板中的点击事件,可以传递到使用模板的元素中。

通过获取到页面对象进行数据操作

这个方法的精髓,是通过获取到其他页面的对象原型, 然后通过原型方法 setData对当前对象管理的 data进行修改,示例如下:

当跳转到下一个页面 F 之后,假定在 F 中有操作需要对 E 中的数据有修改,则可以使用以下方法:

这个方法可以操作页面堆栈里面的页面的数据, 可以做到让后一级页面对上级页面群的数据管理

小结

在微信小程序中有以上并且不局限于以上几种的方式进行页面间数据传递、交互, 在实际应用中可以组合使用。比如说:

  • 一些常量,可以交由 app.js 管理;需要持久化的量可以放在本地保存。

  • 涉及到下级页面或者模板元素的数据,可以通过传入参数的方式传入。

  • 后级页面可以通过获取堆栈里的页面对象快速修改上级的数据。

在实际应用中结合使用,可以更好地管理小程序的数据。

小程序参数传递的几种方式相关推荐

  1. 【小程序登录的两种方式】

    小程序登录的两种方式 账号密码登录 获取小程序授权登录 账号密码登录 app.json页面顺序 先进入首页 有token就是首页 没有token时redirectTo登录页 {"pages& ...

  2. 小程序推广有几种方式?小程序运营有什么步骤?

    目前,微信小程序已经成为越来越多企业进行拓客推广的方式,但如何推广.如何引流成为不少企业需要思考的难题.小程序使用便捷,但也需要了解小程序的特性及推广方式,才能更好地进行运营.小程序有哪些入口?企业可 ...

  3. 实现微信小程序直播的2种方式|7大场景解决方案

    ZEGO 微信小程序直播SDK 可以在微信小程序中提供实时音视频直播服务,从而实现电商直播/在线教育/在线问诊/视频客服等各种业务场景.但是由于微信小程序的官方限制,在某些场景下需要额外使用 ZEGO ...

  4. 如果要做小程序创业,哪种方式最赚钱?

    小程序的风口吹了一年,相信也有很多人观望了很久,但是,很多人始终不清楚,到底要怎么做小程序,才能赚钱. 我今天,介绍三种最简单的方法,门槛都非常低.属于你想动一下,就能赚钱的. 一.占小程序名字! 在 ...

  5. 汇编-子程序参数传递的三种方式-寄存器法,堆栈法,参数赋值法【详述后两者】

    汇编-子程序参数传递的三种方式: 寄存器法,堆栈法,参数赋值法 子程序结构如下: 名称 PROC FAR|NEAR;DO SOMETHINGRET [N];返回断点地址,N可忽略,加了必须对SP进行 ...

  6. Vue系列vue-router的参数传递的两种方式(五)

    Vue系列vue-router的参数传递的两种方式 前言 一.编写Profile页面 二.编写App.vue入口 三.路由配置,index.js 四.对比route.params方式传参 五.项目中 ...

  7. 微信小程序开发的三种模式

    摘要:截止到2018年6月底,正式上线发布的微信小程序已超过100万个.而越来越多的公司也已经在做微信小程序开发,许多人会觉得"微信小程序开发是开发者们的专利".答案是否定的,今天 ...

  8. 第二周项目1函数参数传递的三种方式

    /* .*Copyright (c) 2014,烟台大学计算机学院 *All right reserved. *文件名称:函数参数传递的三种方式.cpp *作者:彭子竹 *完成日期:2015年9月11 ...

  9. 微信小程序---页面跳转的方式有哪些?

    小程序的常用跳转方式有以下五种 ------ (点击蓝色可以直接跳转到小程序官方文档解释): 1. wx.switchTab :用于跳转到tab页面: wx.switchTab({url:'../in ...

最新文章

  1. 42所双一流大学校长情况简介(2019年)
  2. Spoken English(021)
  3. Java类加载文章1(z)
  4. 新手学C语言会踩到什么样的坑?
  5. javascript代码总结
  6. 【英语学习】【WOTD】encroach 释义/词源/示例
  7. 如何进行ASP.NET MVC 的测试
  8. 由装饰者模式来深入理解Java I/O整体框架
  9. Varnish加速网站图片显示
  10. 从毛坯房到精装修,阿里云企业IT治理样板间助力云上管控和治理
  11. Java集合继承关系图
  12. java毕业设计小区停车场管理系统mybatis+源码+调试部署+系统+数据库+lw
  13. 复数fft的时间复杂度_DFT算法与FFT算法的优劣分析
  14. this和that的几点区别
  15. C语言99乘法口诀函数,99乘法口诀妙用C语言输出
  16. input框不允许输入负数
  17. 打印机种类与对应的耗材
  18. QSqlQuery内存问题分析及解决
  19. 在docker中出现的僵尸进程怎么处理
  20. 什么软件可以合并PDF文件?安利这三个软件给你

热门文章

  1. 学习成为一个演讲者(资源)
  2. xstart连不上linux_【Tools系列】使用xstart远程连接linux图形用户界面以及rxvt终端配置-Go语言中文社区...
  3. LightGBM 调参要点
  4. 【测试环境】cywin的简单介绍
  5. 2021.03.17模块
  6. 函数参数中的3个点表示什么
  7. 数字信号处理翻转课堂笔记6
  8. 知识图谱-KGE(Knowledge Graph Embedding):负采样
  9. Tensorflow模型训练六步法
  10. 《地理信息系统原理》笔记/期末复习资料(1. 概述)