小程序之-----页面间传值

通常,我们在解决页面之间传值的时候,最常用的方法就是本地存储URL带参数过来,然后在用的那一页进行获取,本地存储又分为cookielocalstorage,在小程序中,舍弃了cookie,只支持localstorage,所以,接下来就为大家介绍下小程序中如何在页面之间传值

一、localstorage

1、设置存储:

wx.setStorageSync('session_id', session_id);
2、读取存储:在使用的页面执行如下操作
let session_id = wx.getStorageSync('session_id');
二、 URL带参数
1、设置存储:如下的例子中便是
wx.switchTab({
 url: '../index/index?session_id=' + session_id
})	
2、读取存储:(必须在生命周期函数中读取!)
onLoad: function (options) {
	  let that = this;
	  this.setData({
	     //把读取出来的数据存储到页面的数据data中
	      session_id: options.session_id
	  })
  }
此处一定要注意,options.session_id即可把存储在本地的 session_id给取出来,这还没有完,要想在其他自定义的
函数中使用的话,一定要把这个设置为事先在data中定义的数据,然后才能在其他函数中使用,
data: {
	mailCode: "发送验证码",
	boolean: true,
	isChecked: false,
	phone: '',
	phoneTip:'',
	keyCode: '',
	keyCodeTip:'',
	userName: '',
	userNameTip: '',
	userPassword: '',
	userPasswordTip: '',
	next: '',
	code: '',
	session_id:''
  },
比如说如下情况,用户登录要用到这个session_id,需要和用户名等一起发过去,那么这里就要这样做
//登录
  oLogin: function ( ) {
	  let that = this;
	  var pre = that.data;
	  let avatarUrl = wx.getStorageSync('avatarUrl');
	  wx.request({
		  url: 'https://www.muwai.com/index.php/Xcx/Login/wx_login',
		  data: { session_id: pre.session_id, username: pre.userName, phone: pre.phone, password: pre.userPassword, phone_code: pre.keyCode, head_photo: avatarUrl},
		  success: res => {
			  //成功的话直接跳转到首页
			  let oStatus = res.data.status;
			  if (oStatus == 100) {
				  let session_id = res.data.session_id;
				  wx.setStorageSync('session_id', session_id);
				  wx.switchTab({
					  url: '../index/index?session_id=' + session_id
				  })
			  }
			  
		  }
	  })	  
  }
这里登录的时候就要用到,所以用的时候去data里面取即可,用 that.data.session_id即可取到
tips:作者曾多次在登录函数中使用options.session_id获取本地存储,都失败了,最终才知道,必须要在生命
周期函数中获取才可以,大家学到了吗?
吐舌头
觉得帮到你的话动动小手点个赞吧









当用户勾选或取消勾选一个 checkbox 时,可以通过绑定 change 事件来监听并处理这个操作。在 change 事件的处理函数中,可以通过事件对象 event 来获取当前 checkbox 的值和是否被勾选。可以将这些值存储到一个数组中,最后将这个数组作为参数传递给后台接口。 下面是一个示例代码: 1. 在 wxml 文件中: ```html <checkbox-group bindchange="checkboxChange"> <label wx:for="{{checkboxItems}}" wx:key="{{index}}"> <checkbox value="{{item.value}}" checked="{{item.checked}}">{{item.name}}</checkbox> </label> </checkbox-group> ``` 2. 在 js 文件中: ```javascript Page({ data: { checkboxItems: [ { name: '选项1', value: '1', checked: false }, { name: '选项2', value: '2', checked: false }, { name: '选项3', value: '3', checked: false }, ], checkedValues: [] }, checkboxChange: function(e) { const values = e.detail.value; const items = this.data.checkboxItems; const checkedValues = []; for (let i = 0, lenI = items.length; i < lenI; ++i) { items[i].checked = false; for (let j = 0, lenJ = values.length; j < lenJ; ++j) { if (items[i].value === values[j]) { items[i].checked = true; checkedValues.push(values[j]); break; } } } this.setData({ checkboxItems: items, checkedValues: checkedValues }); // 将 checkedValues 传递给后台接口 console.log('checkedValues: ', checkedValues); } }) ``` 在上面的示例中,我们通过一个数组 checkboxItems 来保存所有的 checkbox 选项,并且设置了一个 checkedValues 数组来保存用户勾选的值。在 checkboxChange 函数中,我们首先获取到用户勾选的值 values,然后遍历 checkboxItems 数组,将所有的 checked 属性设置为 false。接着再遍历 values 数组,将对应的 checkbox 的 checked 属性设置为 true,并将它的 value 值添加到 checkedValues 数组中。最后通过 setData 函数将更新后的 checkboxItems 和 checkedValues 保存到页面的数据中。同时,我们可以将 checkedValues 数组传递给后台接口来完成数据的提交。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值