ウィジェットajaxパッケージ

1596 ワード

前言
微信ウィジェットはネットワークリクエスト方法を提供しているが、使い勝手が悪く、自分でパッケージした.
パッケージングソース
//      API
import API from './_api.js'
export default {
  /**
  *   fetch        
  *     : 
  *       url:     
  *       data:   
  *       method:     
  *       success:         
  *       fail:         
  */
  fetch (url, data, method, success, fail) {
    //         (loading )
    const accessToken = wx.getStorageSync('userInfo');
    wx.request({
      url: url,
      data: data,
      header: {
        'content-type': 'application/json; charset=UTF-8',
        'Authorization': accessToken.sessionid //   token   
      },
      method: method,
      success: function (res) {
        //   loading
        success(res);
      },
      fail: function (res) {
        //   loading
        //       
        wx.showToast({
          title: '    ',
          image: '../assets/img/info.png',
          duration: 1500
        })
        fail(res);
      }
    })
  }
}

参照
import API from '../../utils/_api.js'
import HTTP from '../../utils/_http.js'
let that = this;
HTTP.fetch(API.baseUrl + API.xxx, {
    }, 'GET',
    function (res) {
       // success
        that.setData({
          //     
        })
    }, function (res) {
       // fail
    })


最適化のヒント
以上は簡易版にすぎず,パラメータ部分を最適化し,1つのオブジェクトの字面量を入力した後,パラメータをデフォルト処理することができる.
fetch (options) {
  //       
  options.url = options.url || '';
  options.data = options.data || {};
  ...
}