微信小程序> 微信小程序页面之间传递参数-如何在微信小程序的页面间传递数据?-小程序页面传值

微信小程序页面之间传递参数-如何在微信小程序的页面间传递数据?-小程序页面传值

浏览量:1764 时间: 来源:弹琴弹琴

1.

2.知晓程序注:

3.我们在之前发布过小程序页面传值方法的,说明了在小程序开发中,两种常见的页面之间传值方法。

4.本期,「知晓程序」为你带来的是「倒数记日」小程序开发者带来的,小程序开发中,有关页面间数据传递的更多方法。

5.文|小日子先生

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

7.使用全局变量

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

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

10.

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

12.

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

14.使用本地缓存

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

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

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

18.

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

20.

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

22.父级往子级页面(模板)的数据传递

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

24.

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

26.

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

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

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

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

31.

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

33.

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

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

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

37.

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

39.

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

41.小结

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

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

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

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

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

47.本文如有不周到之处,可以留言进行讨论。

48.转载:http://www.sohu.com/a/138831377_603236

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎