国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

微信小程序開發(fā)之網(wǎng)絡(luò)請求工具封裝教程

2020-03-21 16:17:04
字體:
供稿:網(wǎng)友

之所以選擇封裝是為了代碼的簡潔性,而且封裝起來的代碼一個多處使用;像網(wǎng)絡(luò)請求這種常見的操作,我們是需要將其封裝為一個工具,在使用的使用直接引入,再使用就可以省去很多重復(fù)的代碼。

下面以獲取干貨首頁文章的網(wǎng)絡(luò)請求分析

網(wǎng)絡(luò)請求的初始代碼

getGankData: function (url) {    var that = this;    wx.request({      url: url,      method: 'GET',      header: {        "Content-Type": "json"      },      success: function (res) {          // 處理請求成功返回的數(shù)據(jù)        that.processGankData(res.data.results);      },      fail: function (error) {        console.log('錯誤信息是:' + error);      }    })  },

經(jīng)過封裝后的代碼

util.http(url, this.processGankData) ;

一個項目中不可能只有一個網(wǎng)絡(luò)請求,如果每個請求都要寫一遍重復(fù)的代碼,雖然是沒什么問題,但是能用一行代碼解決的問題,為什么不用偏要用十幾行去實現(xiàn)呢?

可以分為三個步驟來實現(xiàn):

先在 utils.js中寫好模板代碼,通過module.exports方式提供給外部調(diào)用 在調(diào)用的.js文件中引入var util = require('../../utils/util.js');注意路徑是相對路徑,絕對路徑會報錯 最后在合適的地方調(diào)用即可。

寫好模板代碼utils.js

/** * 請求網(wǎng)絡(luò) */function http(url, callBack) {  wx.request({    url: url,    method: 'GET',    header: {      "Content-Type": "json"    },    success: function (res) {      callBack(res.data);    },    fail: function (error) {      console.log(error)    }  })}module.exports = {  http: http}

引入封裝好的代碼reading.js

// 注意要使用相對路徑哦~var util = require('../../utils/util.js');Page({    ...     /**   * 生命周期函數(shù)--監(jiān)聽頁面加載   */  onLoad: function (options) {    var baseUrl = "https://gank.io/api/data/all/" ;    var url = baseUrl + this.data.pageSize + "/" + this.data.page;    this.data.requestUrl = baseUrl ;    // 調(diào)用    util.http(url, this.processGankData) ;  },})

解析數(shù)據(jù)reading.js

/**   * 處理干貨數(shù)據(jù)   */  processGankData: function (gankData) {    var ganks = [];    // 因為數(shù)據(jù)在 results 中,所以這里需要 gankData.results 去獲取數(shù)據(jù)    var results = gankData.results ;    for (var idx in results) {      var subject = results[idx];      var time = subject.publishedAt;      var time1 = time.replace('T',' ')      var date = time1.substring(0,19);      var temp = {        desc: subject.desc,        publishedAt: date,        _type: subject.type,        _id: subject._id,        url: subject.url      }      ganks.push(temp)    }    var totalGanks = {}    //如果要綁定新加載的數(shù)據(jù),那么需要同舊有的數(shù)據(jù)合并在一起    if (!this.data.isEmpty) {      totalGanks = this.data.ganks.concat(ganks);    }    else {      totalGanks = ganks;      this.data.isEmpty = false;    }    wx.hideNavigationBarLoading();    wx.stopPullDownRefresh()    this.setData({      ganks: totalGanks    });  },

至此網(wǎng)絡(luò)請求工具封裝完成。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 开原市| 安义县| 建德市| 出国| 昌邑市| 靖宇县| 南昌市| 犍为县| 贡山| 嘉兴市| 谷城县| 从化市| 沙洋县| 安徽省| 静乐县| 桦川县| 张北县| 石泉县| 化德县| 元阳县| 婺源县| 张家港市| 肥东县| 凤庆县| 娱乐| 抚远县| 南康市| 天台县| 德化县| 稻城县| 阳原县| 荔浦县| 仁寿县| 嵩明县| 墨竹工卡县| 壤塘县| 北宁市| 曲水县| 临泉县| 陆丰市| 磐安县|