纵横研究院小程序技术专题社区

微信小程序页面间的传值方式

2019-06-10  本文已影响73人  zhangmingbo

最新在学习微信小程序时联想到之前angular,vue在页面间的传值方式。想到小程序的几种页面间传值方式,于是总结了一下。

一.路由带参传值

顾名思义,路由带参传值的方式就是我们需要将所需要传的参数拼接到路由上。我们将这种传值方式分解为两步进行

1.传值

举个栗子:我们要想将A页面的某个值userId传递给B页面,首先我们需要在A页面将userId传递出去,在这里我们用路由参数的形式将参数传递出去

<!--pages/pageA/pageA.wxml-->
<navigator url="../pageB/pageB?user_id='038281831283'" hover-class="navigator-hover">B页面</navigator>

2.接收值

我们在A页面将值传递出去的同时,页面的路由也要发生变化,此时路由栈到了B页面。在接收之前我们需要现在data中定义一下userId这个数据对象。(类似于vue中的$router.params)

data: {
    userId:'',
  },

在B页面执行生命周期函数onLoad的时候我们需要接收一下传递过来的参数。

onLoad: function (options) {
    this.setData({
      userId:options.userId
    })
    console.log(this.data.userId)
  },

二.本地存储(类似于webApp中的localStorage)

关于微信小程序的缓存我们可以访问[小程序-数据存储](https://developers.weixin.qq.com/minigame/dev/guide/base-ability/storage.html
)了解一下
同样我们分两步进行

1.存数据(A页面)

wx.setStorageSync('userName', 'zhangmingbo')

2.取数据(B页面)

Page({
  data:{
    userName:'',
  },
  onLoad: function(){
   var userName = wx.getStorageSync('userName')
   this.setData({
       userName: userName
    })
  }
})

三.全局app对象(可以理解为angular中的$rootScope)

关于app全局对象我们可以访问[小程序-注册程序](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html
)了解一下
按部就班我们还是分为两步

1.存数据(A页面)

var app = getApp();
app.userName='zhangmingbo';

2.取数据(B页面)

var app = getApp();
var username = app.username;

目前作为小程序初学者,我所了解到的页面间传值大概有着几种。如有其他方式,欢迎补充

上一篇下一篇

猜你喜欢

热点阅读