国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

小程序的初次遇見,使用mpvue搭建模板

MangoGoing / 456人閱讀

摘要:最后寫一個公用的樣式就可以使用了。現在我們可以愉快的使用其開發了,如果對開發比較熟悉的話,完全遷移過來是沒有問題的。

由于公司業務需求的需要,在這一周需要開發小程序,加急看了下小程序的文檔,發現用其原生來編寫程序不是很順手,公司前端用的技術棧是vue, 詢問了谷哥和度娘發現大部分推薦了 wepympvue,對比了兩個框架,還是選用了 mpvue, 因為 mpvue 繼承自 vue.js,其技術規范和語法特點與 Vue.js 保持一致。

快速搭建 mpvue 目錄
// 全局安裝 vue-cli
$ npm install --global vue-cli
// 創建一個基于 mpvue-quickstart 模板的新項目
$ vue init mpvue/mpvue-quickstart wx-mpvue-demo
// 安裝依賴
$ cd wx-mpvue-demo
$ npm install
// 啟動構建
$ npm run dev

一個簡單的工程目錄就搭建完成了。

封裝自己的公用模塊
1.封裝Totast

由于小程序原生的消息提示實在是讓人崩潰,所以我們先自己來封裝下 totast, 在 util目錄新建 totast.js

class toast {
  static msg (title, {icon = 1}) {
    wx.showToast({
      title,
      icon: ["success", "none"][icon]
    })
  }
  static confirm ({title = "提示", content, callback}) {
    wx.showModal({
      title,
      content,
      success: function (res) {
        if (res.confirm) {
          callback(res.confirm)
        } else if (res.cancel) {
          console.log("用戶點擊取消")
        }
      }
    })
  }
}

export default toast

我們掛載到main.js中, 在組件里可以方便調用

import toast from "./utils/toast"
Vue.prototype.$totast = toast
2.封裝 publicRequest

小程序的網路請求不是很方便,我們也對其封裝一下。

import totast from "./toast"

const Authorization = "Bearer xxx"
class publicRequest {
  static get ({url, data = {}, isJson = false, hasToken = true, header}) {
    let hasNetWork = checkNetWork()

    if (!hasNetWork) {
      totast.msg("網路異常", {})
      return false
    }

    let contentType = isJson ? "application/json" : "application/x-www-form-urlencoded"
    let _authorization = hasToken ? {"Authorization": Authorization} : {}
    let _header = Object.assign({"content-type": contentType}, _authorization, header)
    wx.showLoading({title: "加載中..."})
    return new Promise((resolve, reject) => {
      wx.request({
        url,
        header: _header,
        dataType: "json",
        method: "GET",
        data,
        success: (res) => {
          if (res.statusCode === 200) {
            resolve(res.data)
          }
        },
        fail: (error) => {
          totast.msg(error.errMsg, {})
          reject(error)
        },
        complete: res => {
          if (res.statusCode !== 200) {
            totastMessage({
              statusCode: res.statusCode,
              message: res.data.msg
            })
          }
          wx.hideLoading()
        }
      })
    })
  }
  static post ({url, data = {}, isJson = false, hasToken = true, header}) {
    let hasNetWork = checkNetWork()

    if (!hasNetWork) {
      totast.msg("網路異常", {})
      return false
    }
    let contentType = isJson ? "application/json" : "application/x-www-form-urlencoded"
    let _authorization = hasToken ? {"Authorization": Authorization} : {}
    let _header = Object.assign({"content-type": contentType}, _authorization, header)
    wx.showLoading({title: "加載中..."})
    return new Promise((resolve, reject) => {
      wx.request({
        url,
        header: _header,
        method: "POST",
        data,
        dataType: "json",
        success: (res) => {
          resolve(res.data)
        },
        fail: (error) => {
          totast.msg(error.errMsg, {})
          reject(error)
        },
        complete: res => {
          if (res.statusCode !== 200) {
            totastMessage({
              statusCode: res.statusCode,
              message: res.data.msg
            })
          }
          wx.hideLoading()
        }
      })
    })
  }
}
const checkNetWork = function () {
  return new Promise(resolve => {
    wx.getNetworkType({
      success: res => {
        let networkType = res.networkType;
        if (networkType === "none" || networkType === "unknown") {
          resolve(false)
        } else {
          resolve(true)
        }
      },
      fail: () => {
        resolve(false)
      }
    })
  })
}
const totastMessage = function ({statusCode, message}) {
  switch (statusCode) {
    case 502:
      totast.msg("服務器異常", {})
      break
    default:
      totast.msg(message, {})
      break
  }
}
export default publicRequest

我們呢也對其掛載到 vue 上去。

import publicRequest from "./utils/publicRequest"
Vue.prototype.$http = publicRequest
3.掃一掃的調用

我們先公用出掃一掃

const handleScan = function () {
  return new Promise((resolve, reject) => {
    wx.scanCode({
      success: (res) => {
        console.log(res)
        resolve(res)
      },
      fail: error => {
        reject(error)
      }
    })
  })
}
export default handleScan

公用出來后掛載到我們的 vue 上后可以在組件里直接調用 this.$handleScan,如

methods: {
  async scanCodeInfo () {
    let goods = await this.$handleScan()
    console.log(goods)
    this.codeInfo = goods.result
  }
}
4.如何引入iconfont圖標

因為小程序的wxss文件的font-face的url不接受http地址作為參數,但可以接受base64,因此需將字體文件下載后,轉換為base64,然后引用。
所以我們可以在阿里巴巴圖標庫下載下來,將iconfont.ttf轉換。轉換地址:https://transfonter.org/

下載文件后解壓得到stylesheet.css文件,將此文件引入到項目。最后寫一個公用的樣式:

.icon:after{
  font-family: "iconfont";
  font-weight: lighter;
  font-style: normal;
}

.icon-saoyisao:after { content: "e7c7"; }

.icon-hebingxingzhuang:after { content: "e61a"; }

就可以使用了。

現在我們可以愉快的使用其開發了,如果對 vue開發比較熟悉的話,完全遷移過來是沒有問題的。最后附上項目demo和原文地址
每個人都有第一次,哈哈~這就是我的第一次寫文章,不到之處,望指正。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94759.html

相關文章

  • 美團程序框架mpvue蹲坑指南

    摘要:這個是我們約定的額外的配置這個字段下的數據會被填充到頂部欄的統一配置美團汽車票同時,這個時候,我們會根據的頁面數據,自動填充到中的字段。 美團小程序框架mpvue(花名:沒朋友)蹲坑指南 第一次接觸小程序大概是17年初,當時小程序剛剛內側,當時就被各種限制折騰的死去活來的,單向綁定,沒有promise,請求數限制,包大小限制,各種反人類,...反正我是感受到了滿滿的惡意.最近接到一個工...

    AprilJ 評論0 收藏0
  • mpvue+vant app搭建微信程序

    摘要:開發微信小程序使用全局安裝創建一個基于模板的新項目安裝依賴啟動構建使用將下的下的目錄復制到下的目錄即可調用調用中調用中使用請輸入搜索關鍵詞搜索關注我的微信公眾賬號分享更多 mpvue+vant 開發微信小程序 mpvue使用 # 全局安裝 vue-cli $ npm install --global vue-cli # 創建一個基于 mpvue-quickstart 模板的新項目 $...

    int64 評論0 收藏0
  • 程序項目入坑實踐

    摘要:公司由于小程序原開發需求變動,產品決定重新開始設計新的小程序,人員緊張,導致我接了這個坑。輸入數字一般項目可能都會碰到金額的輸入限制,這里小程序組件,可利用,來控制輸入只能是數值和小數點。 公司由于小程序原開發需求變動,產品決定重新開始設計新的小程序,人員緊張,導致我接了這個坑~。原開發時準備使用 mpvue 來開發,前篇文章介紹了一些關于mpvue的寫法,后來在我將簡易框架搭建后,發...

    zhjx922 評論0 收藏0
  • mpvue程序開發從零構建

    摘要:根據官方文檔,用搭建腳手架。全局安裝創建一個基于模板的新項目安裝依賴啟動構建生成的目錄結構如圖。示例圖小知識點,標簽模板既可以用里也可以用小程序里的,比如等,在輪播圖中運用方便高效。 1、根據官方文檔,用mpvue搭建腳手架。 # 全局安裝 vue-cli $ npm install --global vue-cli # 創建一個基于 mpvue-quickstart 模板的新項目 $...

    zhiwei 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<