当前位置: 首页 > news >正文

vue3 + js + vite创建的项目中配置svg图

安装

npm install vite-plugin-svg-icons
npm install fast-glob

vite.config.js文件中配置如下内容

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
export default defineConfig({plugins: [vue(),createSvgIconsPlugin({// 指定需要缓存的图标文件夹iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],symbolId: 'icon-[name]'})]
})

自定义组件,在项目中自定义一个名为svgIcon.vue的组件,该组件的内容如下

<template><div><svg :class="svgClass" aria-hidden="true"><use :xlink:href="iconName" :fill="color" /></svg></div>
</template>
<script setup>import { computed } from 'vue'const props = defineProps({iconClass: {type: String,required: true},className: {type: String,default: ''},color: {type: String,default: ''}})const iconName = computed(() => `#icon-${props.iconClass}`)const svgClass = computed(() => props.className ? `svg-icon ${props.className}` : 'svg-icon')</script>
<style scoped>.svg-icon {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;}
</style>

全局引入svgIcon组件

在main.js中全局引入如下内容

import 'virtual:svg-icons-register'
import SvgIcon from './components/svgIcon.vue'
const app = createApp(App)
app.component('svg-icon', SvgIcon)
app.use(router)
app.mount('#app')

使用svgIcon组件

这里假设在组件index.vue中使用

<template><div><svg-icon icon-class="vue"/></div>
</template>
<script setup></script>
<style scoped>
</style>

icon-class="vue"绑定的vue,其实就是在“src/assets/icons/vue.svg”这个图片
在这里插入图片描述

http://www.lryc.cn/news/506593.html

相关文章:

  • c++ 找第一个只出现一次的字符
  • 在 Unity 6 中使用APV为您的世界创建全局照明的新方法(一)
  • Win11安装安卓子系统WSA
  • 利用两种方式分别实现单例模式(懒汉式、饿汉式)
  • js分页功能
  • Ubuntu20.04 编译运行 ORBSLAM2_with_pointcloud_map(以RGBD Orbbec Astra+为例)保姆级教程
  • MyBatis(四)
  • 【从零开始的LeetCode-算法】3285. 找到稳定山的下标
  • Docker常用命令总结~
  • 浅谈怎样系统的准备前端面试
  • 如何配置防火墙提高服务器安全性
  • java集合-Map HashMap 源码解析
  • 案例分享|企查查的数据降本增效之路
  • 图书馆管理系统(四)基于jquery、ajax--完结篇
  • 什么是Modbus协议网关?
  • Docker 容器中启用 SSH 服务
  • Linux系统—利用systemd管控系统以及服务详解(十四)
  • 人工智能 AI 大模型研究设计与实践应用技术毕业论文
  • 已有 containerd 的情况下部署二进制 docker 共存
  • VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
  • vue+springboot+cas配置及cookie传递问题
  • 0009.基于springboot+layui的ERP企业进销存管理系统
  • ZYNQ初识2(zynq_7010)基于vivado,从PL端调用PS端的时钟
  • Android详解——ConstraintLayout约束布局
  • docker简单命令
  • 【linux】shell(36)-文件操作
  • c语言——数据结构【链表:单向链表】
  • ​Python 标识符是啥?​
  • 视频及JSON数据的导出并压缩
  • VScode使用教程(菜鸟版)