前言:
去iconfont-阿里巴巴矢量图标库 下载自己需要的icon图标,下载格式为svg;项目中在存放静态资源的文件夹下 assets 创建一个存放svg格式的图片的文件夹。
步骤:
1、安装vite-plugin-svg-icons
npm i vite-plugin-svg-icons -D
2、创建svgIcon.vue组件
<template><svg aria-hidden="true" :class="svgClass"><use :xlink:href="symbolId" :fill="props.color" /></svg>
</template>
<script>
import { defineComponent } from "vue";
export default defineComponent({name: "svg-icon",
});
</script>
<script setup>
import { computed } from "vue";
const props = defineProps({prefix: {type: String,default: "icon",},name: {type: String,require: true,},color: {type: String,default: "#333",},className: {type: String,default: "",},
});
const symbolId = computed(() => `#${props.prefix}-${props.name}`);
console.log(symbolId.value, "symbolIdsymbolId");
const svgClass = computed(() => {if (props.className) {return `svg-icon ${props.className}`;}return "svg-icon";
});
</script><style>
.svg-icon {width: 1em;height: 1em;vertical-align: -0.1em;/* 因icon大小被设置为和字体大小一致,而span等标签的下边缘会和字体的基线对齐,故需设置一个往下的偏移比例,来纠正视觉上的未对齐效果 */fill: currentColor;/* 定义元素的颜色,currentColor是一个变量,这个变量的值就表示当前元素的color值,如果当前元素未设置color值,则从父元素继承 */overflow: hidden;
}
</style>
3、在main.js文件中全局注册
4、在vite.config.js文件中进行配置
5、在其他组件中使用
效果: