男女啪祼交视频,久久久久久久久久久久,成人热,久久97久久97精品免视看秋霞,久久久久人妻啪啪一区二区,老师扒下内裤让我爽了一夜

全美商學(xué)院
新聞
新聞

微信小程序開發(fā)經(jīng)驗整理

2021
12/05
16:34
成都全美小程序開發(fā)公司
分享

最近有客戶要求我們開發(fā)一款微信小程序。

于是,就開始著手做了,做了差不多一周吧,也遇到了很多問題,這里就來總結(jié)一下。(主要是從一個Android開發(fā)者的角度來述說的,可能比較零碎的一些知識點和經(jīng)驗,如果大家還有補充,歡迎總結(jié)

一、傳參,方法判斷

js中方法中可以傳遞一個方法作為形參,在java中是不可以的。比如start項目中的

getUserInfo:function(cb){ varthat=this if(this.globalData.userInfo){ typeofcb=="function"&&cb(this.globalData.userInfo) }else{ //調(diào)用登錄接口 wx.login({ success:function(){ wx.getUserInfo({ success:function(res){ that.globalData.userInfo=res.userInfo typeofcb=="function"&&cb(that.globalData.userInfo) } }) } }) } },

這里就是傳遞一個形參,cb的方法,并且這里還有一個很巧妙的判斷方法

typeofcb=="function"&&cb(that.globalData.userInfo)

利用的&&的運算規(guī)律,首先判斷cb是不是一個方法,這里的==可以作為類型是否相當(dāng)?shù)呐袛?,然后?amp;&中如果前面的不滿足,后面的則不會執(zhí)行;如果是cb是一個方法,調(diào)用cb方法,并且傳入success成功回調(diào)的userinfo參數(shù)

還有一點,if(this.globalData.userInfo)可以作為是否為null的判斷條件,在java中不可以。

二、log打印

log的打印,如果直接打印“”+變量是不可以的,因為人家沒有toString()方法

Xconsole.log("info"+info);

所以只能分開打印

console.log("info"); console.log(info);

三、json取對象

json的使用,可以通過json["key"]來取其子對象

person:{ name:"jafir", age:"11", } varname=person["name"];

varage=person["age"];

info:{persons:[{name:"123",age:11},{name:"jafir1",age:12}]} //如果有數(shù)組通過這種方法獲取 console.log(that.data.info["persons"][1].name) console.log(that.data.info["persons"][1].age)

四、定義boolean類型值

要注意如果在page的data中要定義一個boolean類型的值,必須是isSuccess:true而不是isSuccess:"true"

if(this.data.isSccess){ console.log("true") }else{ console.log("false") }

因為如果是isSucees:"true",結(jié)果為true,沒問題,但是如果是isSucess:"false",結(jié)果依舊為true,

因為這里的isSuccess不是boolean,而是一個非空類型,既然非空,if就是為true

如果,默認(rèn)undefined,if則為false

五、使用"that"

建議在page{}外面定義一個that變量,然后在onLoad中賦值為this,以后所有的地方,都可以使用that,這樣就避免有些地方,this并不是指向page的上下文對象

//上下文對象 varthat; page({ onLoad:function(options){ //頁面初始化options為頁面跳轉(zhuǎn)所帶來的參數(shù) that=this; } ... that.setData({ xxx:xxx, }) })

六、page的生命周期方法

只有onload中有options參數(shù),可以獲取頁面?zhèn)髦档鹊龋琽nload只會執(zhí)行一次 但是onShow可以每次切換頁面的時候執(zhí)行,所以,需要每次刷新頁面的數(shù)據(jù)請求,可以放在onShow中,測試過,性能體驗基本無影響 page的生命周期沒有Android那么豐富,頁面之間傳值也有一定的限制。 可以通過普通的url的傳值方式傳值,xxx?key=value,但是要注意:我們傳的值其實是相當(dāng)于字符串和url拼接在一起,請不要直接傳一個對象,因為對象沒有toString方法。

傳遞json對象的步驟為:

1.把json對象變成字符串,如果本身就是那就直接用,如果是json對象,需要parseString(json)

2.和url進(jìn)行參數(shù)拼接?key=value

3.取得時候在onload的options里面取出,

onLoad:function(options){ varvalue=options.key }

然后JSON.stringify(value)轉(zhuǎn)為json對象使用

七、頁面間跳轉(zhuǎn)

從主頁跳轉(zhuǎn)一個新的界面新界面處理完邏輯成功與否結(jié)束之后怎么通知主頁結(jié)果?

這種情況,一般是沒有辦法解決的。經(jīng)過測試,如果你想要從二級非主頁界面直接navigator打開主頁,是不行的,會報錯。

所以,我們采用的策略是:二級界面處理完數(shù)據(jù)之后,直接返回,然后在主頁界面重新拉取數(shù)據(jù)。所以會出現(xiàn),我們的請求接口是在onShow方法里面執(zhí)行的。因為onload只會執(zhí)行一次

八、wxml

1.text標(biāo)簽可以使用bindtap

可以使用這種方式來顯示默認(rèn)的圖片

3.再強調(diào)一下在標(biāo)簽中使用data-xx-oo=" data-ke-src="{{logourl?logourl:'..></p><p>可以使用這種方式來顯示默認(rèn)的圖片</p><p>3.再強調(diào)一下在標(biāo)簽中使用data-xx-oo=" data-ke-src="{{logourl?logourl:'..>

可以使用這種方式來顯示默認(rèn)的圖片

3.再強調(diào)一下在標(biāo)簽中使用data-xx-oo="value",在對應(yīng)對象中可以通過e.currentTarget.dataset.xxOo獲得,這里的xx-oo,-其實是會轉(zhuǎn)義駝峰。這種一般使用場景為你可以給你所點擊或者綁定事件的view設(shè)置一個數(shù)據(jù),比如你一個picker里面有5個view,就可以綁定每個view不同的值,在觸發(fā)事件的時候取到相應(yīng)的值

4.如果你想要顯隱view你可以通過wx:if="true/false"來處理,但是這樣的話,如果為false,page不會去渲染這個view,它所在的位置空間也不會預(yù)留,假如下面的view就會往上排。如果想要留存它的位置空間,可以修改其style樣式來解決

style="visibility:{{isShow?'visible':'hidden'}}"

9:統(tǒng)一網(wǎng)絡(luò)請求處理結(jié)果

你可以封裝一下網(wǎng)絡(luò)請求的返回結(jié)果,做統(tǒng)一處理

requestWithGet:function(paramsData){ data.method='GET' this.requestInternal(paramsData) }, requestWithPost:function(paramsData){ data.method='POST' this.requestInternal(paramsData) }, requestInternal:function(paramsData){ varthat=this; console.log('requestInternal:開始請求接口['+paramsData.url+']'); //開始網(wǎng)絡(luò)請求 wx.request({ url:paramsData.url, data:paramsData.data, method:paramsData.method, success:function(res){ console.log('requestInternal:接口請求成功['+paramsData.url+']'); paramsData.success(res); }, fail:function(res){ console.log('requestInternal:接口請求失敗['+paramsData.url+']'); console.log(res); ////在這里做請求失敗的統(tǒng)一處理 wx.showToast({ title:'網(wǎng)絡(luò)訪問失敗', duration:1500 }) typeofparamsData.fail=="function"&?msData.fail(res); }, complete:function(res){ //在這里做完成的統(tǒng)一處理 typeofparamsData.complete=="function"&?msData.complete(res); } }) }

這樣在使用請求的時候,可以直接先wx.request({})這樣,就可以IDE給你聯(lián)想生成對應(yīng)的請求格式,然后直接把“wx.request”替換“requestWithGet”或者“requestWithPost”就OK了

文章均為全美專業(yè)成都小程序開發(fā)公司,專注于成都小程序開發(fā)服務(wù)原創(chuàng),轉(zhuǎn)載請注明來自http://www.39247.cn/news/482.html

聯(lián)系我們

在線客服

電話咨詢

微信咨詢

微信號復(fù)制成功
15208187678 (蘇女士)
打開微信,粘貼添加好友,免費詢價吧