摘要:最后寫一個公用的樣式就可以使用了。現在我們可以愉快的使用其開發了,如果對開發比較熟悉的話,完全遷移過來是沒有問題的。
由于公司業務需求的需要,在這一周需要開發小程序,加急看了下小程序的文檔,發現用其原生來編寫程序不是很順手,公司前端用的技術棧是vue, 詢問了谷哥和度娘發現大部分推薦了 wepy和 mpvue,對比了兩個框架,還是選用了 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
一個簡單的工程目錄就搭建完成了。
封裝自己的公用模塊
由于小程序原生的消息提示實在是讓人崩潰,所以我們先自己來封裝下 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
小程序的網路請求不是很方便,我們也對其封裝一下。
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
我們先公用出掃一掃
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 } }
因為小程序的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(花名:沒朋友)蹲坑指南 第一次接觸小程序大概是17年初,當時小程序剛剛內側,當時就被各種限制折騰的死去活來的,單向綁定,沒有promise,請求數限制,包大小限制,各種反人類,...反正我是感受到了滿滿的惡意.最近接到一個工...
摘要:開發微信小程序使用全局安裝創建一個基于模板的新項目安裝依賴啟動構建使用將下的下的目錄復制到下的目錄即可調用調用中調用中使用請輸入搜索關鍵詞搜索關注我的微信公眾賬號分享更多 mpvue+vant 開發微信小程序 mpvue使用 # 全局安裝 vue-cli $ npm install --global vue-cli # 創建一個基于 mpvue-quickstart 模板的新項目 $...
摘要:根據官方文檔,用搭建腳手架。全局安裝創建一個基于模板的新項目安裝依賴啟動構建生成的目錄結構如圖。示例圖小知識點,標簽模板既可以用里也可以用小程序里的,比如等,在輪播圖中運用方便高效。 1、根據官方文檔,用mpvue搭建腳手架。 # 全局安裝 vue-cli $ npm install --global vue-cli # 創建一個基于 mpvue-quickstart 模板的新項目 $...
閱讀 554·2021-11-25 09:44
閱讀 2643·2021-11-24 09:39
閱讀 2314·2021-11-22 15:29
閱讀 3527·2021-11-15 11:37
閱讀 3392·2021-09-24 10:36
閱讀 2519·2021-09-04 16:41
閱讀 1001·2021-09-03 10:28
閱讀 1851·2019-08-30 15:55