vue3项目svg使用

1.下载SVG图片

在icon font官网选择想要得图片下载https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2,下载成SVG格式。将图片放至 src/assets/icons 文件夹下,如fanhui.svg。

2.写组件

src/components中新建组件 SvgIcon/index.vue

<script setup name="SvgIcon">
import { Icon } from '@iconify/vue'

const props = defineProps({
    name: {
        type: String,
        required: true
    },
    flip: {
        type: String,
        validator(value) {
            return ['', 'horizontal', 'vertical', 'both'].includes(value)
        },
        default: ''
    },
    rotate: {
        type: Number,
        validator(value) {
            return value >= 0 && value <= 360
        },
        default: 0
    }
})

const transformStyle = computed(() => {
    let style = []
    if (props.flip != '') {
        switch (props.flip) {
            case 'horizontal':
                style.push('rotateY(180deg)')
                break
            case 'vertical':
                style.push('rotateX(180deg)')
                break
            case 'both':
                style.push('rotateX(180deg)')
                style.push('rotateY(180deg)')
                break
        }
    }
    if (props.rotate != 0) {
        style.push(`rotate(${props.rotate}deg)`)
    }
    return `transform: ${style.join(' ')};fill:currentColor;overflow:hidden`
})
</script>

<template>
    <Icon v-if="name.indexOf('ep:') === 0" :icon="name" :style="transformStyle" />
    <svg v-else :style="transformStyle" aria-hidden="true">
        <use :xlink:href="`#icon-${name}`" />
    </svg>
</template>

3.页面内使用

在使用该图片的地方使用如下代码,name属性为保存的svg图片的名字

<el-icon>
    <svg-icon name="fanhui" />
</el-icon>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值