vue 移动端 UI库 Vant的使用

58 篇文章 3 订阅

1.介绍vant
Vant 是有赞前端团队开源的移动端组件库,于 2017 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。
2. vant的获得方式
https://youzan.github.io/vant/#/zh-CN/home
3. 基础用法
基础用法与原生 img 标签一致,可以设置 src、width、height、alt 等原生属性。

<van-image width="100" height="100" src="https://img.yzcdn.cn/vant/cat.jpeg" />

4.圆形图片
通过 round 属性可以设置图片变圆,注意当图片宽高不相等且 fit 为 contain 或 scale-down 时,将无法填充一个完整的圆形。

<van-image
  round
  width="10rem"
  height="10rem"
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>

5.图片懒加载
设置 lazy-load 属性来开启图片懒加载,需要搭配 Lazyload 组件使用。

<van-image
  width="100"
  height="100"
  lazy-load
  src="https://img.yzcdn.cn/vant/cat.jpeg"
/>
import Vue from 'vue';
import { Lazyload } from 'vant';

Vue.use(Lazyload);

6.加载中提示
Image 组件提供了默认的加载中提示,支持通过 loading 插槽自定义内容。

<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
  <template v-slot:loading>
    <van-loading type="spinner" size="20" />
  </template>
</van-image>

7. 加载失败提示
Image 组件提供了默认的加载失败提示,支持通过 error 插槽自定义内容。

<van-image src="https://img.yzcdn.cn/vant/cat.jpeg">
  <template v-slot:error>加载失败</template>
</van-image>

8. API

Props
参数	说明	类型	默认值
src	    图片链接	string	-
fit	    图片填充模式	string	fill
alt	    替代文本	string	-
width	宽度,默认单位为px	number | string	-
height	高度,默认单位为px	number | string	-
radius	圆角大小,默认单位为px	number | string	0
round	是否显示为圆形	boolean	false
lazy-load	是否开启图片懒加载,须配合 Lazyload 组件使用	boolean	false
show-error	是否展示图片加载失败提示	boolean	true
show-loading	是否展示图片加载中提示	boolean	true
error-icon v2.4.2	失败时提示的图标名称或图片链接	string	photo-fail
loading-icon v2.4.2	加载时提示的图标名称或图片链接	string	photo
icon-prefix v2.10.12	图标类名前缀,同 Icon 组件的 class-prefix 属性	string	van-icon

9. 图片填充模式

名称	含义
contain	保持宽高缩放图片,使图片的长边能完全显示出来
cover	保持宽高缩放图片,使图片的短边能完全显示出来,裁剪长边
fill	拉伸图片,使图片填满元素
none	保持图片原有尺寸
scale-down	取none或contain中较小的一个
Events
事件名	说明	回调参数
click	点击图片时触发	event: Event
load	图片加载完毕时触发	-
error	图片加载失败时触发	-
Slots
名称	说明
default v2.9.0	自定义图片下方的内容
loading	自定义加载中的提示内容
error	自定义加载失败时的提示内容

10. 常见问题
如何引用本地图片?
在 .vue 文件中通过相对路径引用本地图片时,需要在图片的链接外包上一层 require(),将图片 URL 转换为 webpack 模块请求,并结合 file-loader 或者 url-loader 进行处理。

<!-- 错误写法 -->
<van-image src="./image.png" />

<!-- 正确写法 -->
<van-image :src="require('./image.png')" />
对此更详细的解释可以参考 vue-loader 的处理资源路径章节。

使用 image 标签无法渲染?
使用 Image 组件时,可能会遇到将 <image> 作为标签名时无法渲染的问题,比如下面的写法:

<template>
  <image src="xxx" />
</template>

<script>
import { Image } from 'vant';

export default {
  components: {
    Image,
  },
};
<script>

这是因为 标签是原生的 SVG 标签,Vue 不允许将原生标签名注册为组件名,使用 即可规避这个问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值