Vant

什么是Vant

Vant是一个轻量,可靠的移动端组件库,2017开源

目前 Vant 官方提供了 Vue 2 版本Vue 3 版本微信小程序版本,并由社区团队维护 React 版本支付宝小程序版本

课程中使用Vant 2.x版本可以浏览网站

https://youzan.github.io/vant/v2/#/zh-CN/

Vant的优势

ElementUI是开发电脑浏览器页面的组件库

而Vant是开发移动端显示页面的组件库

酷鲨商城前台设计的是手机来访问,所以使用移动端更合适也就是使用Vant

Vant特性

  • 性能极佳,组件平均体积小于 1KB(min+gzip)
  • 65+ 个高质量组件,覆盖移动端主流场景
  • 使用 TypeScript 编写,提供完整的类型定义
  • 单元测试覆盖率超过 90%,提供稳定性保障
  • 提供完善的中英文文档和组件示例
  • .......

第一个Vant程序

创建Vue项目

参考第四阶段创建Vue项目的比较创建Vue项目

首先确定一个文件夹创建Vue项目

G盘下创建一个文件夹vue-home

进入文件夹在地址栏输入cmd,打开dos命令行

G:\vue-home>vue create demo-vant

具体选项,参考之前阶段创建Vue的笔记

添加\安装Vant支持

我们创建一个Vue项目,Vue项目不会自动支持Vant

我们需要将Vant添加到Vue项目中

进入到我们刚刚创建的项目的文件夹

G:\vue-home>cd demo-vant

运行安装\添加Vant支持的npm命令

G:\vue-home\demo-vant>npm i vant@latest-v2 -S

运行结束后可能有警告,无视掉

最终看到的提示可能是

added 5 packages in 3s

到此为止,当前Vue项目,就支持Vant功能了

我们利用idea打开这个项目即可

https://gitee.com/jtzhanghl/vant2202.git

添加Vant引用

如果想在Vue项目中开始使用Vant的功能

还需要在Vue项目代码中添加Vant的引用

Vue项目的src/main.js中,添加如下引用,启用Vant功能

// 添加Vant引用
import Vant from 'vant';
import 'vant/lib/index.css'; Vue.use(Vant)

添加了上面的引用,当前Vue项目就可以使用Vant组件了

为了实时运行项目,我们启动Vue项目

在idea的Terminal中编写启动代码

G:\vue-home\demo-vant>npm run serve

打开浏览器

输入localhost:8080

进入移动端页面调试模式

以Google浏览器为例按F12进入调试模式后点击移动端调试即可

按钮组件

在HomeView.vue中修改代码为

<template>
<div class="home">
<van-button type="primary">主要按钮</van-button>
<van-button type="info">信息按钮</van-button>
<van-button type="default">默认按钮</van-button>
<van-button type="warning">警告按钮</van-button>
<van-button type="danger">危险按钮</van-button>
</div>
</template>

打开页面,就可以看到按钮

表单页面

使用表单组件实现登录页面

是Vant直接提供的组件

在AboutView.vue页面中编写代码如下

<template>
<div class="about">
<van-form @submit="onSubmit" @failed="myFail">
<van-field
v-model="username"
name="用户名"
label="用户名"
placeholder="用户名"
:rules="[{ required: true, message: '请填写用户名' }]"
/>
<van-field
v-model="password"
type="password"
name="密码"
label="密码"
placeholder="密码"
:rules="[{ required: true, message: '请填写密码' }]"
/>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit">提交</van-button>
</div>
</van-form>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: '',
};
},
methods: {
onSubmit(values) {
// 提交成功的方法
console.log('submit', values);
},
myFail(errorInfo){
// 提交失败的方法
console.log(errorInfo);
}
},
};
</script>

注意@submit和@failed这两个事件的绑定关系

area省市区选择

先在views文件夹下创建AreaView.vue文件

编写代码如下

<template>
<div>
<van-area title="省市区选择" :area-list="areaList" />
</div>
</template> <script>
const areaList = {
province_list: {
110000: '北京市',
120000: '天津市',
},
city_list: {
110100: '北京市',
120100: '天津市',
},
county_list: {
110101: '东城区',
110102: '西城区',
// ....
},
};
export default {
data(){
return{areaList}
}
}
</script>

新建的页面要设置路由才能访问

const routes = [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
},
{
path: '/area',
name: 'area',
component: () => import('../views/AreaView.vue')
}
]

通过输入路径http://localhost:8080/area

访问省市区选择页面

只有少量数据

如果需要真实的全国省市区数据,我们需要直接引入

使用npm命令如下

G:\vue-home\demo-vant>npm i @vant/area-data

下面我们修改AreaView.vue的代码

引用安装好的全国数据,并绑定确认按钮,输出选择的省市区的信息

<template>
<div>
<van-area title="省市区选择" :area-list="areaList"
@confirm="showArea"/>
</div>
</template> <script>
import {areaList} from '@vant/area-data'
export default {
data(){
return{areaList}
},
methods:{
showArea(area){
console.log(area);
}
}
}
</script>

商品列表

我们的电商网站一定会需要商品列表

移动端Vant直接支持了商品列表的格式

我们也不需要大范围的修改

创建ListView.vue

代码如下

<template>
<div>
<van-row>
<van-col span="8">综合</van-col>
<van-col span="8">销量</van-col>
<van-col span="8">价格</van-col>
</van-row>
<van-card
num="2"
price="168.00"
desc="超10万好评热销产品"
title="酷鲨键盘鼠标套装"
thumb="https://img01.yzcdn.cn/vant/ipad.jpeg"
>
<template #tags>
<van-tag type="primary">自营</van-tag>
<van-tag plain type="primary">酷鲨物流</van-tag>
</template>
<template #footer>
<van-button size="mini">按钮</van-button>
<van-button size="mini">按钮</van-button>
</template>
</van-card>
<van-card
num="2"
price="168.00"
desc="超10万好评热销产品"
title="酷鲨键盘鼠标套装"
thumb="https://img01.yzcdn.cn/vant/ipad.jpeg"
>
<template #tags>
<van-tag type="primary">自营</van-tag>
<van-tag plain type="primary">酷鲨物流</van-tag>
</template>
<template #footer>
<van-button size="mini">按钮</van-button>
<van-button size="mini">按钮</van-button>
</template>
</van-card>
</div>
</template> <script> </script>

路由代码

{
path: '/list',
name: 'list',
component: () => import('../views/ListView.vue')
}

5-1 Vant | 移动组件库的更多相关文章

  1. 在mpvue框架中使用Vant WeappUI组件库的注意事项

    1如何引入组件库 有两种方法 1 npm下载 2 下载代码,下面介绍第二种方法. 在gitHub上, 链接如下 https://github.com/youzan/vant-weapp 首先在自己项目 ...

  2. Vant UI 组件库如何做rem适配?

    Vant是一款移动端基于vue的组件库,V2.1.1版本非常棒.文档地址:https://youzan.github.io/vant/?source=vuejsorg#/zh-CN/intro,那么V ...

  3. 小程序使用mpvue框架无缝接入Vant Weapp组件库

    有美团开源出的mpvue以其vue的语法和良好的开发效率再搭配上用户体验良好的UI组件无疑是定制化微信小程序的开发方式,然而由于mpvue是对微信原生开发的再次封装,这也为我们引入UI组件添加了不少麻 ...

  4. 微信小程序引入Vant组件库

    前期准备 Vant Weapp组件库:https://youzan.github.io/vant-weapp/#/intro 1.先在微信开发者工具中打开项目的终端: 然后初始化一个package.j ...

  5. vue-cli3.0 flexible&px2rem 解决第三方ui组件库样式问题

    背景 在项目使用lib-flexible还有postcss-px2rem实现移动端适配,当我们引入第三方的样式组件库,发现一个问题.那些组件库的样式都变小了. 问题原因 变小的主要原因是第三库 css ...

  6. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  7. [转载]前端——实用UI组件库

    https://www.cnblogs.com/xuepei/p/7920888.html Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https:/ ...

  8. 强烈推荐优秀的Vue UI组件库

    Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基于Vue的UI组件框架开发,并投入正 ...

  9. Vue UI组件库

    1. iView UI组件库  iView官网:https://www.iviewui.com/ 2.Vux UI组件库   Vux官网:https://vux.li/ 3.Element UI组件库 ...

随机推荐

  1. SpringBoot 读取配置文件数据

  2. Linux-3作业练习

    1.自建yum仓库,分别为网络源和本地源 请移步: yum源配置 2.编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交. 请移步:http2.4编译安装       总结参照https ...

  3. 电脑UEFI启动是什么?

    UEFI 当EFI发展到1.1的时候,英特尔决定把EFI公之于众,于是后续的2.0吸引了众多公司加入,EFI也不再属于英特尔,而是属于了Unified EFI Form的国际组织,EFI在2.0后也遂 ...

  4. Docker被禁了!只能靠它了......

    科技飞速发展的今天,企业对候选人有了新的更高要求,如市场.运营等必须会Python.Sql,面试常问诸如用户漏斗等考察数据分析能力.可以说,懂数据的人会更有竞争力通过面试. 而市场上,专业的数据分析人 ...

  5. 流量录制回放工具jvm-sandbox-repeater入门篇——服务部署

    趋于当前技术不断更新.产品功能多元化之下,流量回放的热度也是越来越高. 在前一段时间,测试团队也提到阿里开源的流量回放工具 jvm-sandbox-repeater 我个人就先尝试一下,期间还是遇到一 ...

  6. typeScript类型总结

    1.对象类型 {} 用来指定对象中可以包含哪些属性,在属性名后加?表示属性是可选的 语法:{属性名:属性值类型,属性名:属性值类型} 示例: let a:{name:string,age?:numbe ...

  7. 实验:Python图形图像处理

    1. 准备一张照片,编写Python程序将该照片进行图像处理,分别输出以下效果的图片:(a)灰度图:(b)轮廓图: (c)变换RGB通道图:(d)旋转45度图. 2. 假设当前文件夹中data.csv ...

  8. 现有教学数据库JX_DB,作业

    现有教学数据库JX_DB,数据库有以下三个基本表: 学生表student,它由学号sno.姓名sname.性别sex.出生日期Bdate.所在系dept五个属性构成.其中,学号不能为空,值是唯一的: ...

  9. mysql Bad handshake

    由于 Java 程序访问 MySQL 时,MySQL 抛出 Bad handshake 错误,导致接口抛错,然后在 MySQL 配置文件新增 skip_ssl 配置(忽略 SSL 密钥和证书文件),重 ...

  10. django三板斧与request对象方法与ORM

    目录 django三板斧 HttpResponse() render() redirect() 网页获取静态文件样式 request对象方法 post请求问题 针对get请求和post请求执行不同代码 ...