摘要:最后寫(xiě)一個(gè)公用的樣式就可以使用了?,F(xiàn)在我們可以愉快的使用其開(kāi)發(fā)了,如果對(duì)開(kāi)發(fā)比較熟悉的話(huà),完全遷移過(guò)來(lái)是沒(méi)有問(wèn)題的。
由于公司業(yè)務(wù)需求的需要,在這一周需要開(kāi)發(fā)小程序,加急看了下小程序的文檔,發(fā)現(xiàn)用其原生來(lái)編寫(xiě)程序不是很順手,公司前端用的技術(shù)棧是vue, 詢(xún)問(wèn)了谷哥和度娘發(fā)現(xiàn)大部分推薦了 wepy和 mpvue,對(duì)比了兩個(gè)框架,還是選用了 mpvue, 因?yàn)?mpvue 繼承自 vue.js,其技術(shù)規(guī)范和語(yǔ)法特點(diǎn)與 Vue.js 保持一致。
快速搭建 mpvue 目錄
// 全局安裝 vue-cli $ npm install --global vue-cli // 創(chuàng)建一個(gè)基于 mpvue-quickstart 模板的新項(xiàng)目 $ vue init mpvue/mpvue-quickstart wx-mpvue-demo // 安裝依賴(lài) $ cd wx-mpvue-demo $ npm install // 啟動(dòng)構(gòu)建 $ npm run dev
一個(gè)簡(jiǎn)單的工程目錄就搭建完成了。
封裝自己的公用模塊
由于小程序原生的消息提示實(shí)在是讓人崩潰,所以我們先自己來(lái)封裝下 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("用戶(hù)點(diǎn)擊取消") } } }) } } export default toast
我們掛載到main.js中, 在組件里可以方便調(diào)用
import toast from "./utils/toast" Vue.prototype.$totast = toast
小程序的網(wǎng)路請(qǐng)求不是很方便,我們也對(duì)其封裝一下。
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("網(wǎng)路異常", {}) 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("網(wǎng)路異常", {}) 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("服務(wù)器異常", {}) break default: totast.msg(message, {}) break } } export default publicRequest
我們呢也對(duì)其掛載到 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
公用出來(lái)后掛載到我們的 vue 上后可以在組件里直接調(diào)用 this.$handleScan,如
methods: { async scanCodeInfo () { let goods = await this.$handleScan() console.log(goods) this.codeInfo = goods.result } }
因?yàn)樾〕绦虻膚xss文件的font-face的url不接受http地址作為參數(shù),但可以接受base64,因此需將字體文件下載后,轉(zhuǎn)換為base64,然后引用。
所以我們可以在阿里巴巴圖標(biāo)庫(kù)下載下來(lái),將iconfont.ttf轉(zhuǎn)換。轉(zhuǎn)換地址:https://transfonter.org/
下載文件后解壓得到stylesheet.css文件,將此文件引入到項(xiàng)目。最后寫(xiě)一個(gè)公用的樣式:
.icon:after{ font-family: "iconfont"; font-weight: lighter; font-style: normal; } .icon-saoyisao:after { content: "e7c7"; } .icon-hebingxingzhuang:after { content: "e61a"; }
就可以使用了。
現(xiàn)在我們可以愉快的使用其開(kāi)發(fā)了,如果對(duì) vue開(kāi)發(fā)比較熟悉的話(huà),完全遷移過(guò)來(lái)是沒(méi)有問(wèn)題的。最后附上項(xiàng)目demo和原文地址
每個(gè)人都有第一次,哈哈~這就是我的第一次寫(xiě)文章,不到之處,望指正。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/94759.html
摘要:這個(gè)是我們約定的額外的配置這個(gè)字段下的數(shù)據(jù)會(huì)被填充到頂部欄的統(tǒng)一配置美團(tuán)汽車(chē)票同時(shí),這個(gè)時(shí)候,我們會(huì)根據(jù)的頁(yè)面數(shù)據(jù),自動(dòng)填充到中的字段。 美團(tuán)小程序框架mpvue(花名:沒(méi)朋友)蹲坑指南 第一次接觸小程序大概是17年初,當(dāng)時(shí)小程序剛剛內(nèi)側(cè),當(dāng)時(shí)就被各種限制折騰的死去活來(lái)的,單向綁定,沒(méi)有promise,請(qǐng)求數(shù)限制,包大小限制,各種反人類(lèi),...反正我是感受到了滿(mǎn)滿(mǎn)的惡意.最近接到一個(gè)工...
摘要:開(kāi)發(fā)微信小程序使用全局安裝創(chuàng)建一個(gè)基于模板的新項(xiàng)目安裝依賴(lài)啟動(dòng)構(gòu)建使用將下的下的目錄復(fù)制到下的目錄即可調(diào)用調(diào)用中調(diào)用中使用請(qǐng)輸入搜索關(guān)鍵詞搜索關(guān)注我的微信公眾賬號(hào)分享更多 mpvue+vant 開(kāi)發(fā)微信小程序 mpvue使用 # 全局安裝 vue-cli $ npm install --global vue-cli # 創(chuàng)建一個(gè)基于 mpvue-quickstart 模板的新項(xiàng)目 $...
摘要:公司由于小程序原開(kāi)發(fā)需求變動(dòng),產(chǎn)品決定重新開(kāi)始設(shè)計(jì)新的小程序,人員緊張,導(dǎo)致我接了這個(gè)坑。輸入數(shù)字一般項(xiàng)目可能都會(huì)碰到金額的輸入限制,這里小程序組件,可利用,來(lái)控制輸入只能是數(shù)值和小數(shù)點(diǎn)。 公司由于小程序原開(kāi)發(fā)需求變動(dòng),產(chǎn)品決定重新開(kāi)始設(shè)計(jì)新的小程序,人員緊張,導(dǎo)致我接了這個(gè)坑~。原開(kāi)發(fā)時(shí)準(zhǔn)備使用 mpvue 來(lái)開(kāi)發(fā),前篇文章介紹了一些關(guān)于mpvue的寫(xiě)法,后來(lái)在我將簡(jiǎn)易框架搭建后,發(fā)...
摘要:根據(jù)官方文檔,用搭建腳手架。全局安裝創(chuàng)建一個(gè)基于模板的新項(xiàng)目安裝依賴(lài)啟動(dòng)構(gòu)建生成的目錄結(jié)構(gòu)如圖。示例圖小知識(shí)點(diǎn),標(biāo)簽?zāi)0寮瓤梢杂美镆部梢杂眯〕绦蚶锏?,比如等,在輪播圖中運(yùn)用方便高效。 1、根據(jù)官方文檔,用mpvue搭建腳手架。 # 全局安裝 vue-cli $ npm install --global vue-cli # 創(chuàng)建一個(gè)基于 mpvue-quickstart 模板的新項(xiàng)目 $...
閱讀 555·2021-11-25 09:44
閱讀 2645·2021-11-24 09:39
閱讀 2315·2021-11-22 15:29
閱讀 3529·2021-11-15 11:37
閱讀 3395·2021-09-24 10:36
閱讀 2523·2021-09-04 16:41
閱讀 1005·2021-09-03 10:28
閱讀 1860·2019-08-30 15:55