基于vue-resource的網絡層封裝

好的架構封裝,不僅可以加快開發的速度,還能使得邏輯更加簡明,不用關心內部的實現。在此介紹一下vue-resource基于es6出來的神器promise的封裝處理。

首先抽出一個baseHttp.js,用于處理vue-resource的方法調用

import Vue from 'vue'
let vue = new Vue()

//GET請求,將url和請求參數傳入,通過Promise,將成功和失敗的數據派發出去
export function getHttp(url, params) {
  return new Promise((resolve, reject) => {
    vue
      .$http({
        url: url,
        params: params,
        method: 'GET'
      })
      .then(response => {
        resolve(response.body)
      }, response => {      
        reject(response.bodyText)
      })
  })
}

//POST請求,將url,請求參數和body傳入,通過Promise,將成功和失敗的數據派發出去
export function postHttp(url, params, body) {
  return new Promise((resolve, reject) => {
    vue
      .$http({
        url: url,
        params: params,
        body: JSON.stringify(body),
        method: 'POST'
      })
      .then(response => {
        resolve(response.body)
      }, response => {
        reject(response.bodyText)
      })
  })
}

核心部分已經講完了,就是這么簡單。

然后寫一個net.js,用于處理需要的請求處理

Examples

import {getHttp, postHttp} from './basehttp'

/**
  *  GET請求
  *  請求url為app/user/{user_id}?aaaa=1234
 **/
export function getUserInfo(userId) {
  let url = 'app/user/{user_id}'
  let params = {
    user_id: userId,
    aaaa: 1234
  }
  return getHttp(url, params)
}


/**
 * POST請求
 * 請求app/user/query/{user_id}?aaaa=1234
 * 請求body { serverId: String,  scope: String }
 */
export function postUserInfo(userId, serverId, scope) {
  let url = 'app/user/query/{user_id}'
  let params = {
    user_id: userId,
    aaaa: 1234
  }
  let body = {
    serverId: serverId,
    scope: 'personal'
  }
  return postHttp(url, params, body)
}

調用

經過封裝后,調用就變得非常簡單了

import * as http from '../../api/net'

//getUserInfo調用
http.getUserInfo(userId)
  .then(response => {
           //成功處理
         }, reject => {
           //失敗處理
         })

//postUserInfo
http.postUserInfo(userId, serverId, scope)
  .then(response => {
           //成功處理
         }, reject => {
           //失敗處理
         })
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 愛若無言 不如放棄 總有那么一段情讓你忘了自己 而你卻裝作若無其事 選擇了共同歸宿 仍不能再說愛我 只因心中殘留的...
    眾晟閱讀 302評論 0 2
  • 組員分享 寇艷萍 三個收獲:有緣,空中相聚在易效能,很有緣;新穎,共讀一本書,分享感受,新穎別致;踐行,提高工作和...
    竹海星空閱讀 216評論 0 3
  • 家鄉好兒郎 見慣風雨狂 世間多難事 順天路更寬 海邊雄兒郎 個個很瘋狂 五尺浪滔滔 也敢闖一闖
    先80閱讀 158評論 0 0
  • 在互聯網時代,很多人習慣了用手機閱讀,越來越多的人用手機閱讀替代紙質閱讀。閱讀變得越來越碎片化。 對于這兩種閱讀方...
    小坤爸閱讀 250評論 0 0