Vant Weapp是有赞前端团队开源的移动端微信小程序组件库,组件丰富,生态活跃,应该是目前最火的微信小程序UI组件库
一、安装
1、npm安装
npm i @vant/weapp -S --production
2、修改app.json
将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱
3、修改project.config.json
开发者工具创建的项目,miniprogramRoot 默认为 miniprogram,package.json 在其外部,npm 构建无法正常工作。
需要手动在 project.config.json 内添加如下配置,使开发者工具可以正确索引到 npm 依赖的位置
{ | |
... | |
"setting": { | |
... | |
"packNpmManually": true, | |
"packNpmRelationList": [ | |
{ | |
"packageJsonPath": "./package.json", | |
"miniprogramNpmDistDir": "./miniprogram/" | |
} | |
] | |
} | |
} |
注意: 由于目前新版开发者工具创建的小程序目录文件结构问题,npm构建的文件目录为miniprogram_npm,并且开发工具会默认在当前目录下创建miniprogram_npm的文件名,所以新版本的miniprogramNpmDistDir配置为'./'即可
4、构建npm包
打开微信开发者工具,点击 工具 -> 构建 npm,并勾选 使用 npm 模块 选项,构建完成后,即可引入组件。
npm构建
二、使用
以 Button 组件为例,只需要在app.json或index.json中配置 Button 对应的路径即可。
所有组件文档中的引入路径均以 npm 安装为例,如果你是通过下载源代码的方式使用 @vant/weapp,请将路径修改为项目中 @vant/weapp 所在的目录。
// 通过 npm 安装 | |
// app.json | |
"usingComponents": {"van-button": "@vant/weapp/button/index" | |
} |
组件使用
引入组件后,可以在 wxml 中直接使用组件
<van-button type="primary">按钮</van-button>
三、常用组件事例
1、按钮
引入
"usingComponents": { | |
"van-button": "@vant/weapp/button/index" | |
} |
按钮类型
// 支持default、primary、info、warning、danger五种类型,默认为default | |
<van-button type="default">默认按钮</van-button> | |
<van-button type="primary">主要按钮</van-button> | |
<van-button type="info">信息按钮</van-button> | |
<van-button type="warning">警告按钮</van-button> | |
<van-button type="danger">危险按钮</van-button> |
朴素按钮
// 通过plain属性将按钮设置为朴素按钮,朴素按钮的文字为按钮颜色,背景为白色 | |
<van-button plain type="primary">朴素按钮</van-button> | |
<van-button plain type="info">朴素按钮</van-button> |
按钮事例
2、Icon图标
组件引入
"usingComponents": { | |
"van-icon": "@vant/weapp/icon/index" | |
} |
基本使用
<van-icon name="close" /> | |
<van-icon name="https://b.yzcdn.cn/vant/icon-demo-1126.png" /> |
3、时间选择器
组件引入
"usingComponents": { | |
"van-datetime-picker": "@vant/weapp/datetime-picker/index" | |
} |
基本使用
<van-datetime-picker | |
type="datetime" | |
value="{{ currentDate }}" | |
min-date="{{ minDate }}" | |
max-date="{{ maxDate }}"bind:input="onInput" | |
/> | |
Page({ | |
data: { | |
minHour: 10, | |
maxHour: 20, | |
minDate: new Date().getTime(), | |
maxDate: new Date(2019, 10, 1).getTime(), | |
currentDate: new Date().getTime(), | |
}, | |
onInput(event) { | |
this.setData({ | |
currentDate: event.detail, | |
}); | |
}, | |
}); |
时间选择组件
4、Field组件
组件引入
"usingComponents": { | |
"van-field": "@vant/weapp/field/index" | |
} |
基本使用
<van-cell-group> | |
<van-field | |
value="{{ value }}" | |
placeholder="请输入用户名" | |
border="{{ false }}" | |
bind:change="onChange" | |
/> | |
</van-cell-group> | |
Page({ | |
data: { | |
value: '', | |
}, | |
onChange(event) { | |
// event.detail 为当前输入的值 | |
console.log(event.detail); | |
}, | |
}); |
Field组件
还有很多实用的组件,细节上大家可以去官网查看,我平时项目的业务开发基本上都能满足
觉得效果不错的请帮忙加个关注点个赞,每天分享前端实用开发技巧