寫在最前面

微信小程序自九月份推出內(nèi)測(cè)資格以來(lái),經(jīng)歷了輿論熱潮到現(xiàn)在看似冷清,但并不意味著大家不那么關(guān)注或者不關(guān)注了。我想不管是否有內(nèi)測(cè)資格,只要是感興趣的開發(fā)者已經(jīng)進(jìn)入潛心耕耘產(chǎn)品的階段了,至少是靜下心來(lái)思考與學(xué)習(xí)。如果對(duì)微信小程序的前途和定位有什么疑惑,可以看看這篇文章http://lib.csdn.net/article/wechat/46742。

下面從字母a開始編號(hào)的內(nèi)容主要作為后續(xù)學(xué)習(xí)與思考后對(duì)文章做的更新,包括項(xiàng)目的改進(jìn)、觀點(diǎn)的補(bǔ)充等,所以建議大家先將整篇文章看完再來(lái)瀏覽這部分,會(huì)有不一樣的收獲。

a. 3.1.2節(jié)index.js實(shí)現(xiàn)火車票查詢事件的響應(yīng)函數(shù)getTrainInfo時(shí),直接在函數(shù)體中調(diào)用wx.request方法開始網(wǎng)絡(luò)請(qǐng)求。但是后面在閱讀了別人的代碼后發(fā)現(xiàn),可以將常用的url、apikey、request等常量和方法抽象出來(lái),定義到獨(dú)立的文件當(dāng)中。于是在根目錄下新建requests目錄,其中新建文件request與api文件(js格式),api用來(lái)定義網(wǎng)路請(qǐng)求所需的url、apikey等常量信息,request用來(lái)定義網(wǎng)絡(luò)請(qǐng)求方法(可以多種形式)。這樣在不同頁(yè)面中請(qǐng)求不同網(wǎng)絡(luò)數(shù)據(jù)時(shí),只要傳不同的參數(shù)即可,調(diào)用的方法是共用的,提高了可讀性與維護(hù)性。這部分改變已經(jīng)同步更新到了Github。

b. 3.1.2和3.2.2節(jié)都提到了,將JSON格式數(shù)據(jù)作為url參數(shù)傳遞前,需要先轉(zhuǎn)化為String類型,然后目標(biāo)頁(yè)面讀取數(shù)據(jù)時(shí)需要將String類型對(duì)象轉(zhuǎn)回到JSON格式。如果不想這么復(fù)雜,而又只是以學(xué)習(xí)為目的的話,可以借助app.js中定義的全局變量來(lái)承載數(shù)據(jù),因?yàn)轫?xiàng)目的任何地方都可以獲取這種變量值。

app中添加相關(guān)變量trainList:

1 globalData:{ 2   userInfo:null, 3   trainList:[]  //火車票信息列表 4 }

index頁(yè)面獲取網(wǎng)絡(luò)請(qǐng)求返回?cái)?shù)據(jù)后直接對(duì)全局變量賦值:

1 app.globalData.trainList = res.data.data.trainList;

train頁(yè)面獲?。?/p>

1 this.setData({ 2   trainList: app.globalData.trainList, 3 });

這樣就避免了轉(zhuǎn)化的步驟,但是如果是正規(guī)大型項(xiàng)目,還是建議采用最合適的處理方式,畢竟全局變量是針對(duì)整個(gè)項(xiàng)目的。 

 

網(wǎng)友評(píng)論