前言
vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。
目前 vant 官方提供了 vue 2 版本、vue 3 版本和微信小程序版本,并由社区团队维护 react 版本和支付宝小程序版本
vue3安装
npm install vant --save
安装为vant的最新版,与vue3适配;而是vue2项目需指定版本号为v2,否则会出错
若出错需要卸载 npm uninstall vant
,重新安装
vue2安装
@
指定最新的版本号
npm i vant@latest-v2 -s
main引入
在main.js文件中
1、全局全部引入:
import vant from 'vant'; import 'vant/lib/index.css'; vue.use(antd); // 根据本地localstorage存储的当前语言类型,切换不同语言 import zhcn from 'vant/es/locale/lang/zh-cn' import enus from 'vant/es/locale/lang/en-us' let lang = localstorage.getitem('lang') || 'zh_cn' if (lang === 'en') { locale.use('en-us', enus) } else { locale.use('zh-cn', zhcn) }
2、全局按需引入:
- 在src目录创建plugins文件夹
- 文件夹中创建vant.js文件做引入操作,
import vue from 'vue' // 在这里引入你所需的组件 import { button, cell, cellgroup, icon // 。。。 } from 'vant' // 按需引入ui组件 vue.use(button) vue.use(cell) vue.use(cellgroup) vue.use(icon) // 。。。
- 将这个文件在man.js内引入
import vue from 'vue' import app from './app.vue' import '@/plugins/vant' // 其他操作... new vue({ router, render: h => h(app), }).$mount('#app')
简单使用
例子:vant折叠面板
<div class="result-list"> <van-row class="list-status"> <van-col span="12"><span class="status-name"></span></van-col> <van-col span="3"><span class="status-name">列名1</span></van-col> <van-col span="3"><span class="status-name">列名2</span></van-col> <van-col span="3"><span class="status-name">列名3</span></van-col> <van-col span="3"><span class="status-name">列名4</span></van-col> </van-row> <div class="list-content"> <van-collapse v-model="activenames" :accordion="true"> <van-collapse-item class="content-item" :name="item.schoolclassid" v-for="(item, index) in list" :key="index" > <template #right-icon> <van-icon class="item-icon" :name=" activenames == item.schoolclassid ? 'arrow-down' : 'arrow' " @click.native="showdetail = true" /> </template> <template slot="title"> <van-row class="item-title" @click.stop.prevent="onclickitem(item)" > <van-col span="2"> <div class="list-item-title"> <img class="title-icon" src="../../assets/images/xxx.png" alt="icon" /> </div> </van-col> <van-col span="10"> <div class="list-item-title de-list-title-big"> {{ item.classname }} </div> </van-col> <van-col span="3"> <div class="list-item-title">{{ item.notsubmitted }}</div> </van-col> <van-col span="3"> <div class="list-item-title">{{ item.positivenum }}</div> </van-col> <van-col span="3"> <div class="list-item-title"> {{ item.positivepercentage }} </div> </van-col> <van-col span="3"> <div class="list-item-title success-result"> {{ item.totalnumber }} </div> </van-col> </van-row> </template> <div class="item-detail" v-if="showdetail"> <van-row> <van-col span="6"> <div class="item-content">下拉内容1</div> <div class="item-date"> {{ item.content }} </div> </van-col> <van-col span="6"> <div class="item-content">下拉内容2</div> <div class="item-date"> {{ item.content }} </div> </van-col> <van-col span="6"> <div class="item-content">下拉内容3</div> <div class="item-date"> {{ item.content }} </div> </van-col> <van-col span="6"> <div class="item-content">下拉内容4</div> <div class="item-date"> {{ item.content }} </div> </van-col> </van-row> </div> </van-collapse-item> </van-collapse> </div> </div>
这里是引用
<style lang="less" scoped> .result-list { min-height: 520px; padding: 17px; background-color: #c2e2ff; position: relative; } .list-status { float: right; height: 24px; width: 100%; font-size: 12px; text-align: start; margin-right: 20px; /* line-height: 12px; */ color: rgba(0, 0, 0, 0.4); } // 整个底部列表 .list-content { clear: both; // border: 1px solid red; } // 整个item(包括title和detail) .content-item { margin-bottom: 10px; border-radius: 10px; overflow: hidden; } .item-icon { align-self: center; } // 每一项的item的title .item-title { // border: 1px solid red; text-align: start; font-size: 14px; font-weight: 500; color: #f36292; } .list-item-title { // border: 1px solid yellow; height: 36px; line-height: 36px; position: relative; } .title-icon { width: 20px; height: 20px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } // 每一项的item的detail .item-detail { // border: 1px solid red; padding-top: 10px; text-align: center; .item-content { font-size: 12px; font-weight: 400; color: rgba(0, 0, 0, 0.4); } .item-date { margin-top: 10px; color: #f36292; } .van-col:nth-child(4) .item-date { color: #9ba7b0; } } </style>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论