微信小程序 WePy Utils 工具集整合並封裝了常用的小程序 API 和 HTTP Request

安裝

npm install wepy-utils

按需引入

import { UTILS, HTTP, TIPS } from 'wepy-utils'

Utils

UTILS.now()
獲取當前時間戳
let now = UTILS.now()
console.log(now)
UTILS.random()
返回任意區間隨機數
let random = UTILS.random(1, 5)
console.log(random)
UTILS.param()
將對象解析成 url 字符串
let obj = {id: 1, name: 'ming'} // 需解析的對象
let strResult = UTILS.param(obj, true)  // 第二個參數 true | false 表示是否使用 unDecodeURI 編碼,默認 false
console.log(strResult) // ?id=1&name=ming
UTILS.unparam()
將 url 字符串解析成對象
let url = '?id=1&name=ming' // 需解析的對象
let objResult = UTILS.unparam(url, true)  // 第二個參數 true | false 表示是否使用 unDecodeURI 解碼,默認 false
console.log(objResult) // {id: 1, name: 'ming'}

HTTP Request

GET POST PATCH PUT DELETE
HTTP.get()
第1種使用方法是URL不帶參數。第2種使用方法是在請求URL後帶參數,如:?id=1&name=ming
  • HTTP.get(url).then((data) => {}).catch((error) => {})
  • HTTP.get({url: url, params: [JSON Object] }, mask: [Boolean]).then((data) => {}).catch((error) => {})
let url = 'urlpath'
HTTP.get({
  url: url,
  params: {id: 1, name: 'ming'},
  mask: true
}).then((data) => {
  console.log(data)
}).catch((error) => {
  console.log(error)
})
HTTP.post()
可自定義 headers,如需 Authorization 等,默認:'Content-Type': 'application/json'
HTTP.post({
  url: url, params: {id: 1, name: 'ming' },
  mask: true,
  loading: false,
  headers: {'X-Requested-With': 'XMLHttpRequest'}
}).then((data) => {
  console.log(data)
}).catch((error) => {
  console.log(error)
})
HTTP.patch() HTTP.put() HTTP.delete() 請求方式與 HTTP.post() 寫法類似
// HTTP PATCH
HTTP.patch({url: url, params: [JSON Object], headers: [JSON Object], mask: [Boolean] }).then((data) => {}).catch((error) => {})
// HTTP PUT
HTTP.put({url: url, params: [JSON Object], headers: [JSON Object], mask: [Boolean] }).then((data) => {}).catch((error) => {})
// HTTP DELETE
HTTP.delete({url: url, params: [JSON Object], headers: [JSON Object], mask: [Boolean] }).then((data) => {}).catch((error) => {})
mask 是否顯示透明蒙層,防止觸摸穿透,默認:falseloading 在網絡請求加過程中是否顯示 wx.showLoading 加載動畫,默認顯示。

⚠️ onPullDownRefresh 監聽下拉動作與 wx.showLoading 一起使用會出現頂部回彈 BUG。所以在使用 onPullDownRefresh 時可以將 loading 設置爲 false

Tips

界面

TIPS.toast()
顯示消息提示框(可自定義 wx.showToast 的所有參數,除 success、fail、complete)
TIPS.toast({title: '提示標題'})

// 設置 duration > 0 後,隱藏後可支持回調(duration 默認 1500)
TIPS.toast({
  title: '提示標題'
}).then(() => {
  console.log('隱藏後回調')
})
TIPS.confirm()
顯示模態彈窗(payload 爲 Promise.resolve 是可選項),除 showCancel 改爲 cancel 外,其它可選參數與 wx.showModal 相同
TIPS.confirm({
  title: '提示標題',
  content: '提示內容',
  payload: [1,2,3]
}).then((arr) => {
  console.log('點擊了確定', arr[2]) // 3
}).catch(() => {
  console.log('點擊了取消')
})
TIPS.setTitle()
動態設置當前頁面的標題
TIPS.setTitle('Hello WePy')
TIPS.loading()
顯示 loading 提示框,可自定義提示內容,默認顯示透明蒙層,防止觸摸穿透
TIPS.loading('加載標題')
TIPS.loaded()
隱藏 loading 提示框
TIPS.loaded()

文件

TIPS.downloadSaveFile()
下載單個文件
let url = 'url'
TIPS.downloadSaveFile({
  url: url,
  success: (res) => {
    console.log(res)
  },
  fail: (err) => {
    console.log(err)
  }
})
TIPS.downloadSaveFiles()
下載多個文件
let urls = ['url1','url2','url3']
TIPS.downloadSaveFiles({
  urls: urls,
  progress: true,
  success: (res) => {
    // 下載進度(如果設置 progress: false 數據將在全部下載完成後返回)
    console.log(`下載進度:${res.step}%`)
    // 全部加載完成
    if (res.step === 100) {
      console.log(res)
      res.forEach((value, key) => {
        console.log(`Key:${key} = Value:${value.savedFilePath}`)
      })
    }
  },
  fail: (err) => {
    console.log(err)
  }
})

導航

TIPS.navigateTo()
保留當前頁面,跳轉到應用內的某個頁面
let url = 'test'
let params = {id:1 ,name: 'ming'}
TIPS.navigateTo(url, params)  // test?id=1&name=ming
TIPS.redirectTo()
關閉當前頁面,跳轉到應用內的某個頁面
let url = 'test'
let params = {id:1 ,name: 'ming'}
TIPS.redirectTo(url, params)  // test?id=1&name=ming
TIPS.switchTab()
跳轉到 tabBar 頁面,並關閉其他所有非 tabBar 頁面
let url = 'test'
let params = {id:1 ,name: 'ming'}
TIPS.switchTab(url, params)  // test?id=1&name=ming
TIPS.reLaunch()
關閉所有頁面,打開到應用內的某個頁面
let url = 'test'
let params = {id:1 ,name: 'ming'}
TIPS.reLaunch(url, params)  // test?id=1&name=ming
TIPS.navigateTo() TIPS.redirectTo() TIPS.switchTab() TIPS.reLaunch() 中的 params 參數是一個可選對象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章