欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年02月15日 10:17:08   作者:Jafir  
這篇文章主要介紹了微信小程序 開發(fā)經(jīng)驗整理的相關資料,需要的朋友可以參考下

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

前言:

最近小程序出來了,公司也要求我們開發(fā)一款小程序。

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

總結

1:傳參,方法判斷

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

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

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

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

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

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

2:log打印

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

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

所以只能分開打印

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

3: json取對象

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

person: {
   name: "jafir",
   age: "11",
}
var name = person["name"];
var age = 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)

 4:定義boolean類型值

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

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

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

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

如果,默認undefined,if則為false

5:使用"that"

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

//上下文對象
var that;
page({
 onLoad: function (options) {
  // 頁面初始化 options為頁面跳轉所帶來的參數(shù)
  that = this;
 }

...
that.setData({
    xxx: xxx,
   })
})

6:page的生命周期方法

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

傳遞json對象的步驟為:

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

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

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

onLoad: function (options) {
var value= options.key
}

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

7: 頁面間跳轉

從主頁跳轉一個新的界面 新界面處理完邏輯 成功與否 結束之后怎么通知 主頁結果?
這種情況,一般是沒有辦法解決的。經(jīng)過測試,如果你想要從二級非主頁界面直接navigator打開主頁,是不行的,會報錯。

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

8:wxml

1.text標簽可以使用bindtap

<image src="{{logoUrl?logoUrl:'../../img/paihao.png'}}"></image>

可以使用這種方式來顯示默認的圖片

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

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

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

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

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

requestWithGet: function(paramsData) {
 data.method = 'GET'
 this.requestInternal(paramsData)
},
requestWithPost: function(paramsData) {
 data.method = 'POST'
 this.requestInternal(paramsData)
},
requestInternal: function (paramsData) {
 var that = this;
 console.log('requestInternal: 開始請求接口[' + paramsData.url + ']');
 //開始網(wǎng)絡請求
 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)絡訪問失敗',
    duration: 1500
   })
   typeof paramsData.fail == "function" && paramsData.fail(res);
  },
  complete: function (res) {
//在這里做完成的統(tǒng)一處理
   typeof paramsData.complete == "function" && paramsData.complete(res);
  }
 })
}

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

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • JS技巧多狀態(tài)頁面中的mock方案詳解

    JS技巧多狀態(tài)頁面中的mock方案詳解

    這篇文章主要為大家介紹了JS技巧多狀態(tài)頁面中的mock方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 詳解HTML5 使用video標簽實現(xiàn)選擇攝像頭功能

    詳解HTML5 使用video標簽實現(xiàn)選擇攝像頭功能

    這篇文章主要介紹了詳解HTML5 使用video標簽實現(xiàn)選擇攝像頭功能的相關資料,希望通過本文能幫助到大家,實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • 淺談TypeScript 索引簽名的理解

    淺談TypeScript 索引簽名的理解

    這篇文章主要給大家分享的是TypeScript 索引簽名的理解,索引簽名由方括號中的索引名稱及其類型組成,后面是冒號和值類型:{ [indexName: KeyType]: ValueType }, KeyType 可以是一個 string、number 或 symbol,而ValueType 可以是任何類型,下面就倆簡單了解一下吧
    2021-10-10
  • Web項目如何配置Eslint過程詳解

    Web項目如何配置Eslint過程詳解

    這篇文章主要為大家介紹了Web項目如何配置Eslint過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • javascript條件式訪問屬性和箭頭函數(shù)介紹

    javascript條件式訪問屬性和箭頭函數(shù)介紹

    這篇文章主要介紹了javascript條件式訪問屬性和箭頭函數(shù),下面文章圍繞條件式訪問屬性和箭頭函數(shù)的相關資料展開文章內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 微信小程序 flex實現(xiàn)導航實例詳解

    微信小程序 flex實現(xiàn)導航實例詳解

    這篇文章主要介紹了微信小程序 flex實現(xiàn)導航實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04
  • 使用xml2js庫進行XML數(shù)據(jù)解析

    使用xml2js庫進行XML數(shù)據(jù)解析

    這篇文章主要為大家介紹了使用xml2js庫進行XML數(shù)據(jù)解析用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 微信小程序 for 循環(huán)詳解

    微信小程序 for 循環(huán)詳解

    這篇文章主要介紹了微信小程序 for 循環(huán)詳解的相關資料,需要的朋友可以參考下
    2016-10-10
  • JavaScript選擇器函數(shù)querySelector和querySelectorAll

    JavaScript選擇器函數(shù)querySelector和querySelectorAll

    這篇文章主要介紹了?JavaScript選擇器函數(shù)querySelector和querySelectorAll,下面文章圍繞querySelector和querySelectorAll的相關資料展開詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 微信小程序 http請求的session管理

    微信小程序 http請求的session管理

    這篇文章主要介紹了微信小程序 http請求的session管理的相關資料,需要的朋友可以參考下
    2017-06-06

最新評論