微信小程序Vant組件庫(kù)的安裝與使用教程
引言
經(jīng)過web前端開發(fā)的學(xué)習(xí),相信大家對(duì)于前端開發(fā)有了一定深入的了解,今天我開設(shè)了微信小程序?qū)?,主要想從移?dòng)端開發(fā)方向進(jìn)一步發(fā)展,而對(duì)于我來說寫移動(dòng)端博文的第一站就是小程序開發(fā),希望看到我文章的朋友能對(duì)你有所幫助。
npm包
目前小程序中已經(jīng)支持使用 npm 安裝第三方包,從而來提高小程序的開發(fā)效率。但是,在小程序中使用 npm 包有如下限制:
不支持依賴于 Node.js 內(nèi)置庫(kù)的包
不支持依賴于 瀏覽器內(nèi)置對(duì)象的包
不支持依賴于 C++插件的包
Vant Weapp
Vant Weapp 是有贊前端團(tuán)隊(duì)開源的一套小程序 UI 組件庫(kù),助力開發(fā)者快速搭建小程序應(yīng)用。它所使用的是 MIT 開源許可協(xié)議,對(duì)商業(yè)使用比較友好。其官方文檔如下:Vant官方文檔
安裝 Vant 組件庫(kù)
通過 npm 安裝:
(注意一點(diǎn):npm需要node.js環(huán)境配置,可百度教程,這里不在贅述)
安裝組件庫(kù)之前先要對(duì) npm 進(jìn)行初始化一個(gè)包管理配置文件:
# 通過 npm 安裝 npm i @vant/weapp -S --production # 通過 yarn 安裝 yarn add @vant/weapp --production # 安裝 0.x 版本 npm i vant-weapp -S --production 選擇一種命名方式進(jìn)行安裝即可,這里我選擇第一種
?注意:如果安裝報(bào)錯(cuò)的話可以是權(quán)限不夠,需要調(diào)用管理員權(quán)限:(安裝成功如下圖)
?修改 app.json:
將 app.json中的 “style”:"v2",去除,小程序的新版基礎(chǔ)組件強(qiáng)行加上了許多樣式,難以覆蓋,不關(guān)閉將造成部分組件樣式混亂。
?修改 project.config.json:
開發(fā)者工具創(chuàng)建的項(xiàng)目,miniprogrmRoot 默認(rèn)為 miniprogrm,package.json 在其外部,npm 構(gòu)建無法正常工作。需要手動(dòng)在 project.config.json 內(nèi)添加如下配置,使開發(fā)者工具可以正確索引 npm依賴的位置。
{ ... "setting": { ... "packNpmManually": true, "packNpmRelationList": [ { "packageJsonPath": "./package.json", "miniprogramNpmDistDir": "./miniprogram/" } ] } }
?PS:這個(gè)地方有點(diǎn)奇怪,本來project.config.json是有這兩個(gè)文件的只是 packageJsonPath 里面需要我們配置數(shù)據(jù)而已,但是我配置數(shù)據(jù)之后就報(bào)錯(cuò)了,老是提示我 解析 project.comfig.json 失敗,請(qǐng)檢查內(nèi)容或刪除文件。就很奇怪,查閱了好多文檔資料沒有解決,最后我把原來文件里的兩個(gè)文件先刪除在添加,最后解決了,算是人生中配置文件的一個(gè)小小 Bug 吧。
注意: 由于目前新版開發(fā)者工具創(chuàng)建的小程序目錄文件結(jié)構(gòu)問題,npm構(gòu)建的文件目錄為miniprogram_npm,并且開發(fā)工具會(huì)默認(rèn)在當(dāng)前目錄下創(chuàng)建miniprogram_npm的文件名,所以新版本的miniprogramNpmDistDir配置為’./'即可
構(gòu)建 npm 包:
在根目錄下新建 miniprogram 文件夾。
?然后再點(diǎn)擊【工具 -> 構(gòu)建 npm】
?新的開發(fā)版本中,詳情——本地設(shè)置中是沒有【使用 npm 模塊勾選框選項(xiàng)】,所以我們不需要理會(huì),如果低版本開發(fā)者用戶有這個(gè)選項(xiàng)的話,則需勾選。
這邊也是有一個(gè)很神奇的地方,構(gòu)建文件夾完成后,控制臺(tái)紅了一大片,出現(xiàn)如下報(bào)錯(cuò)
自動(dòng)熱重載錯(cuò)誤 WXML 文件編譯錯(cuò)誤] miniprogram/miniprogram_npm/@vant/weapp/等一系列問題,然后我就查找了相關(guān)文件將如下 注釋掉,在進(jìn)行編譯,紅色消失,把注釋的代碼還原在編譯,紅色沒出現(xiàn),問題解決。
?typescript支持:
如果是使用typescript進(jìn)行小程序開發(fā)的話可以進(jìn)行這個(gè)步驟的配置,一般使用js進(jìn)行小程序開發(fā)的話可以直接跳過這個(gè)步驟就可以了。
安裝 miniprogram-api-typings:
# 通過 npm 進(jìn)行安裝 npm i -D miniprogram-api-typings # 通過 yarn 進(jìn)行安裝 yarn add -D miniprogram-api-typings
在tsconfig.json中增加如下配置,以防止 tsc 編譯報(bào)錯(cuò)。
請(qǐng)將 path/to/node_modules/@vant/weapp 修改為項(xiàng)目的 node_modules 中 @vant/weapp所在的目錄。
{ ... "compilerOptions": { ... "baseUrl": ".", "types": ["miniprogram-api-typings"], "paths": { "@vant/weapp/*": ["path/to/node_modules/@vant/weapp/dist/*"] }, "lib": ["ES6"] } }
引入組件:
以 Button 組件為例,只需要在app.json或index.json中配置 Button 對(duì)應(yīng)的路徑即可。所有組件文檔中的引入路徑均以 npm 安裝為例,如果你是通過下載源代碼的方式使用 @vant/weapp,請(qǐng)將路徑修改為項(xiàng)目中 @vant/weapp 所在的目錄。
// 通過 npm 安裝 // app.json "usingComponents": { "van-button": "@vant/weapp/button/index" }
當(dāng)我們引入組件時(shí),沒有把具體的根目錄寫上時(shí),控制臺(tái)便會(huì)報(bào)錯(cuò),如下:
?加上具體的路徑后,報(bào)錯(cuò)解決,如下:
?使用組件:
引入組件后,可以在 wxml 中直接使用組件
<van-button type="primary">按鈕</van-button>
?如果想使用其它類型的樣式,比如按鈕啥的,在vant官方里面找到button按鈕,根據(jù)需求引入即可
?Vant Weapp 定制全局主題樣式
在app.wxss中,寫入 CSS 變量,即可對(duì)全局進(jìn)行生效:
page{ /* 定制primary按鈕的背景顏色和邊框顏色 */ --button-primary-background-color:#f00; --button-primary-border-color:#0f0; }
?如果想設(shè)置更多的 CSS 樣式,可以查看 Vant Weapp 官方文檔查看:
?配置文件打開是github網(wǎng)站內(nèi)容,網(wǎng)站有可能被墻,多點(diǎn)幾次就可以了。
?API的Promise化
API Promise化:指的是通過額外的配置,將官方提供的、基于回調(diào)函數(shù)的異步API,升級(jí)改造為基于
默認(rèn)情況下,小程序官方提供的異步API都是基于回調(diào)函數(shù)實(shí)現(xiàn)的,比如網(wǎng)絡(luò)請(qǐng)求的 API 需要安裝如下的方式調(diào)用:(缺點(diǎn):容易造成回調(diào)地獄的問題,代碼可讀性、維護(hù)性差!)
wx.request({ method:''; url:''; data:''; success:() => {}, //請(qǐng)求成功的回調(diào)函數(shù) fail:() => {}, //請(qǐng)求失敗的回調(diào)函數(shù) complete:() =>{}, //請(qǐng)求完成的回調(diào)函數(shù) })
實(shí)現(xiàn) API Promise 化
在小程序中,實(shí)現(xiàn) API Promise 化主要依賴于 miniprogram-api-promise 這個(gè)第三方 npm 包,它的安裝和使用步驟如下:(推薦版本)
npm i -S miniprogram-api-promise@1.0.4
安裝完成后,所安裝的包需要再一次進(jìn)行 構(gòu)建 npm ,才能出現(xiàn)在miniprogram文件夾下:
小程序入口文件中(app.js),只需調(diào)用一次 promisifyAll()方法,即可實(shí)現(xiàn)異步 API 的Promise化 :
// app.js import {promisifyAll} from './miniprogram/miniprogram_npm/miniprogram-api-promise/index' const wxp = wx.p = {} promisifyAll(wx,wxp)
調(diào)用Promise化異步API:
//頁(yè)面 .wxml結(jié)構(gòu) <van-button type="primary" bindtap="getInfo">按鈕</van-button> //頁(yè)面.js文件中,定義對(duì)應(yīng)的 tap 事件處理函數(shù) syssc getInfo(){ const res = await wx.p.request({ method: 'GET', url: 'https://www.baidu,com', //舉例而已,百度實(shí)際不能使用 data: { name:'張三', age:18 }, }) console,log(res) },
總結(jié)
到此這篇關(guān)于微信小程序Vant組件庫(kù)的安裝與使用的文章就介紹到這了,更多相關(guān)微信小程序Vant組件庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript 詳解封裝from表單數(shù)據(jù)為json串進(jìn)行ajax提交
這篇文章主要介紹了Javascript 詳解封裝from表單數(shù)據(jù)為json串進(jìn)行ajax提交的相關(guān)資料,需要的朋友可以參考下2017-03-03javascript跨域方法、原理以及出現(xiàn)問題解決方法(詳解)
javascript出于安全方面的考慮,不允許跨域調(diào)用其他頁(yè)面的對(duì)象。但是在安全限制的同時(shí)也給注入iframe或是ajax應(yīng)用上帶來了不少麻煩。跨域簡(jiǎn)單的理解就是因?yàn)閖avascript同源策略的限制,a.com域名下的js無法操作b.com 或者是c.a.com域名下的對(duì)象2015-08-08Firefox/Chrome/Safari的中可直接使用$/$$函數(shù)進(jìn)行調(diào)試
偶然發(fā)現(xiàn)的,頁(yè)面中沒有引入Prototype和jQuery。控制臺(tái)中敲$卻發(fā)現(xiàn)是一個(gè)函數(shù)。又試著敲$$,也是個(gè)function2012-02-02JavaScript canvas實(shí)現(xiàn)文字時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了JavaScript canvas實(shí)現(xiàn)文字時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解
這篇文章主要介紹了ActiveX控件的使用-js實(shí)現(xiàn)打印超市小票功能代碼詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11微信小程序?qū)崿F(xiàn)表單驗(yàn)證提交功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)表單驗(yàn)證提交功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07bootstrap tooltips在 angularJS中的使用方法
這篇文章主要介紹了bootstrap tooltips在 angularJS中的使用 ,需要的朋友可以參考下2019-04-04簡(jiǎn)單實(shí)現(xiàn)輪播圖效果的實(shí)例
下面小編就為大家?guī)硪黄?jiǎn)單實(shí)現(xiàn)輪播圖效果的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07