開發|如何在小程序頁面之間,傳遞數據和變數?
文 | Angeladaddy
最近組裡開發小程序,遇到了一個困擾前端很長時間的話題:頁面之間,如何傳遞數據和變數?
剛開始,我們選擇使用路徑傳參解決。但是眾所周知,各瀏覽器 HTTP Get 請求 URL 最大長度並不相同,大部分瀏覽器只能接受 7000 個字元的數據。
所以,我們覺得這個方式並不靠譜。
研究了一下官網,發現有兩種方式可以「比較優雅」地完成這個任務。
使用全局變數在項目 app.js
中定義globalData
(全局變數)。
App({
globalData:{
userInfo:"angeladaddy"
}
});
在需要的地方,我們可以隨意調用這個全局變數。
getGlobalVar:function{
var that=this;
that.setData({
globalvar_str:JSON.stringify(getApp.globalData)
})
}
當然,賦值也是沒問題的。
onLoad:function(options){
getApp.globalData.userInfo+=" is an awesome man";
},
來試試效果:
使用模板在官方文檔中,模板的使用需要先定義一個模板,要用到 name
屬性。
接著,使用模板和 is
屬性,聲明需要的使用的模板,然後將模板所需要的data
傳入。比如這樣:
給 item
賦值,以顯示模板數據。
Page({
data: {
item: {
index: 0,
msg: "this is a template",
time: "2016-09-15"
}
}
})
這樣就「duang」地一下,解決了頁面傳值問題。
另外,既然小程序可以使用 ES6 的所有特性,那麼那個 var that=this
又是什麼鬼?為何不能用箭頭函數解決作用域問題?大家可以自行嘗試一下。
本文由知曉程序授權轉載,關注微信號 zxcx0101,在微信後台回復「帶參二維碼」,獲取生成小程序帶參二維碼教程。
※微信新出的「門店小程序」,居然支持 227 個服務類目!
※馭勢科技吳甘沙:自動駕駛是塊大餅,但有些部分傳統大廠吃不到
※地鐵越擠,你用手機「買買買」的機率就越高
※你以為 Google 離開了中國,其實它只是換了一種存在方式
TAG:愛范兒 |
※程序間的數據傳遞方法
※表面看起來是樂器,翻開背面「判若兩物」,傳遞出的意識值得深思
※函數參數的傳遞
※月球每小時發出8次閃光,似乎在向人類傳遞信息,到底怎麼了?
※《一人之下》影響力持續發熱,滿分傳遞傳統文化!
※她是一名傳奇間諜,在蔣的身邊潛伏十幾年,傳遞了大量珍貴的情報
※研究發現細胞發育訊息傳遞路徑之間的關鍵連結
※《你好,之華》一封信牽出年少的遺憾,文字傳遞的情感總是令人眷戀
※肝硬化之前,身體傳遞的幾個信號要及時抓住,越早發現越好
※量子糾纏並沒有信息傳遞,它只是測量而導致了糾纏態粒子的波函數發生了瞬時坍塌而已?
※古代通訊業不發達,沒有EMS的古人是如何傳遞書信的?
※不同位置長出的白髮,可能在傳遞不同的信息,看看你有嗎?
※杜甫寫了一首詩,哀嘆國家不幸,數百年後,該詩卻被用來傳遞情報
※央行傳遞重要樓市信號,剛需不焦慮了,開發商防資金鏈斷裂
※開國少將被活埋2天,因兩隻蒼蠅「傳遞」信號得救,再也不打蒼蠅
※日綜測試:同一句話經過7國語言傳遞後,會變得怎樣面目全非!
※還有這種操作?在沒有手機和互聯網的二戰期間是怎麼傳遞信息的
※緊握創新「鑰匙」 共享「數據」成果——從數博會上傳遞出的信息
※恐懼的情感,會在母體子宮內世代間傳遞
※中國這次真發飆了,傳遞了三個非常強硬的信號!