小程序之-----頁面間傳值

通常,我們在解決頁面之間傳值的時候,最常用的方法就是本地存儲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獲取本地存儲,都失敗了,最終才知道,必須要在生命
週期函數中獲取纔可以,大家學到了嗎?
吐舌頭
覺得幫到你的話動動小手點個贊吧









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章