文章目录

🌟前言
哈喽小伙伴们,我们做前端的同学在日常开发当中一定收藏了好多好多的前端组件库,这些组件库不仅可以帮助我们快速的搭建我们的程序,使用的同时也提供了好多实用的API给我们。那么开发小程序的时候我们有没有可以使用的组件库呢?当然有了,今天给大家讲解一下在小程序中如何使用 Vant组件库 。话不多说,咱们直接开整!🤘
🌟Vant介绍
Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。
目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。
扫描下方小程序二维码,体验组件库示例:
🌟Vant安装
🌟npm 支持
1. 项目初始化
在小程序项目里新建终端,输入一下命令,来生成我们的 package.json
,填写项目信息:
npm init
2. 安装Vant
# 通过 npm 安装
npm i @vant/weapp -S --production
# 通过 yarn 安装
yarn add @vant/weapp --production
# 安装 0.x 版本
npm i vant-weapp -S --production
3. 修改 app.json
4.修改 project.config.json
{
...
"setting": {
...
"packNpmManually": true,
"packNpmRelationList": [
{
"packageJsonPath": "./package.json",
"miniprogramNpmDistDir": "./"
}
]
}
}
5.构建 npm 包
等待构建完成,完成后会有以下弹框:
6.typescript 支持
# 通过 npm 安装
npm i -D miniprogram-api-typings
# 通过 yarn 安装
yarn add -D miniprogram-api-typings
{
...
"compilerOptions": {
...
"baseUrl": ".",
"types": ["miniprogram-api-typings"],
"paths": {
"@vant/weapp/*": ["path/to/node_modules/@vant/weapp/dist/*"]
},
"lib": ["ES6"]
}
🌟使用Vant
🌟引入组件
// 通过 npm 安装
// app.json
"usingComponents": {
"van-button": "@vant/weapp/button/index"
}
// 通过下载源码使用 es6版本
// app.json
"usingComponents": {
"van-button": "path/to/@vant/weapp/dist/button/index"
}
// 通过下载源码使用 es5版本
// app.json
"usingComponents": {
"van-button": "path/to/@vant/weapp/lib/button/index"
}
🌟页面使用组件
<van-button type="primary">按钮</van-button>
🌟样式覆盖
🌟介绍
🌟解除样式隔离
样式隔离的相关背景知识请查阅微信小程序文档
<van-button type="primary">主要按钮</van-button>
/* page.wxss */
.van-button--primary {
font-size: 20px;
background-color: pink;
}
<van-button type="primary">主要按钮</van-button>
Component({
options: {
styleIsolation: 'shared',
},
});
.van-button--primary {
font-size: 20px;
background-color: pink;
}
🌟使用外部样式类
Vant Weapp 开放了大量的外部样式类供开发者使用,具体的样式类名称可查阅对应组件的“外部样式类”部分。
需要注意的是普通样式类和外部样式类的优先级是未定义的,因此使用时请添加!important以保证外部样式类的优先级。
<van-cell
title="单元格"
value="内容"
title-class="cell-title"
value-class="cell-value"
/>
.cell-title {
color: pink !important;
font-size: 20px !important;
}
.cell-value {
color: green !important;
font-size: 12px !important;
}
🌟使用 CSS 变量
Vant Weapp 为部分 CSS 属性开放了基于 CSS 属性的定制方案。
相较于 解除样式隔离 和 使用外部样式类,这种方案支持在页面或应用级别对多个组件的样式做批量修改以进行主题样式的定制。
当然,用它来修改单个组件的部分样式也是绰绰有余的。具体的使用方法请查阅定制主题
🌟定制主题
🌟定制单个组件的主题样式
<van-button class="my-button">
默认按钮
</van-button>
.my-button {
--button-border-radius: 10px;
--button-default-color: #f2f3f5;
}
或通过 style 属性来设置 CSS 变量,这使你能够轻松实现主题的动态切换
<van-button style="{{ buttonStyle }}">
默认按钮
</van-button>
Page({
data: {
buttonStyle: `
--button-border-radius: 10px;
--button-default-color: green;
`,
},
onLoad() {
setTimeout(() => {
this.setData({
buttonStyle: `
--button-border-radius: 2px;
--button-default-color: pink;
`,
});
}, 2000);
},
});
🌟定制多个组件的主题样式
<view class="container">
<van-button bind:click="onClick">
默认按钮
</van-button>
<van-toast id="van-toast" />
</view>
import Toast from '@vant/weapp/toast/toast';
Page({
onClick() {
Toast('我是提示文案,建议不超过十五字~');
},
});
.container {
--button-border-radius: 10px;
--button-default-color: #f2f3f5;
--toast-max-width: 100px;
--toast-background-color: pink;
}
🌟定制全局主题样式
在 app.wxss 中,写入 CSS 变量,即可对全局生效
page {
--button-border-radius: 10px;
--button-default-color: #f2f3f5;
--toast-max-width: 100px;
--toast-background-color: pink;
}
🌟写在最后
这篇文章给大家讲解了一下在小程序当中如何使用Vant组件库去快速的搭建我们的小程序页面,更多组件以及API请大家持续关注,后面会给大家出一些比较好玩的功能,尽请期待。各位小伙伴让我们 let’s be prepared at all times!