寫在最前面
微信小程序自九月份推出內(nèi)測資格以來,經(jīng)歷了輿論熱潮到現(xiàn)在看似冷清,但并不意味著大家不那么關(guān)注或者不關(guān)注了。我想不管是否有內(nèi)測資格,只要是感興趣的開發(fā)者已經(jīng)進入潛心耕耘產(chǎn)品的階段了,至少是靜下心來思考與學(xué)習(xí)。如果對微信小程序的前途和定位有什么疑惑,可以看看這篇文章http://lib.csdn.net/article/wechat/46742。
下面從字母a開始編號的內(nèi)容主要作為后續(xù)學(xué)習(xí)與思考后對文章做的更新,包括項目的改進、觀點的補充等,所以建議大家先將整篇文章看完再來瀏覽這部分,會有不一樣的收獲。
a. 3.1.2節(jié)index.js實現(xiàn)火車票查詢事件的響應(yīng)函數(shù)getTrainInfo時,直接在函數(shù)體中調(diào)用wx.request方法開始網(wǎng)絡(luò)請求。但是后面在閱讀了別人的代碼后發(fā)現(xiàn),可以將常用的url、apikey、request等常量和方法抽象出來,定義到獨立的文件當(dāng)中。于是在根目錄下新建requests目錄,其中新建文件request與api文件(js格式),api用來定義網(wǎng)路請求所需的url、apikey等常量信息,request用來定義網(wǎng)絡(luò)請求方法(可以多種形式)。這樣在不同頁面中請求不同網(wǎng)絡(luò)數(shù)據(jù)時,只要傳不同的參數(shù)即可,調(diào)用的方法是共用的,提高了可讀性與維護性。這部分改變已經(jīng)同步更新到了Github。
b. 3.1.2和3.2.2節(jié)都提到了,將JSON格式數(shù)據(jù)作為url參數(shù)傳遞前,需要先轉(zhuǎn)化為String類型,然后目標(biāo)頁面讀取數(shù)據(jù)時需要將String類型對象轉(zhuǎn)回到JSON格式。如果不想這么復(fù)雜,而又只是以學(xué)習(xí)為目的的話,可以借助app.js中定義的全局變量來承載數(shù)據(jù),因為項目的任何地方都可以獲取這種變量值。
app中添加相關(guān)變量trainList:
1 globalData:{ 2 userInfo:null, 3 trainList:[] //火車票信息列表 4 }
index頁面獲取網(wǎng)絡(luò)請求返回數(shù)據(jù)后直接對全局變量賦值:
1 app.globalData.trainList = res.data.data.trainList;
train頁面獲取:
1 this.setData({ 2 trainList: app.globalData.trainList, 3 });
這樣就避免了轉(zhuǎn)化的步驟,但是如果是正規(guī)大型項目,還是建議采用最合適的處理方式,畢竟全局變量是針對整個項目的。