Vue3+vite實現(xiàn)使用svg可改變顏色的全過程
更新時間:2024年07月23日 09:47:19 作者:好多吃的啊
Vue3 + Vite 使用 SVG 的方法主要是為了引入和利用圖標庫、自定義組件以及通過插件簡化項目構(gòu)建過程,這篇文章給大家介紹了Vue3+vite實現(xiàn)使用svg可改變顏色的全過程,需要的朋友可以參考下
vue3 + vite 使用 svg
1、安裝插件
npm install vite-plugin-svg-icons -D npm install fast-glob -D
2、配置插件 vite.config.js
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' // 引入svg插件 import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' const pathResolve = (pathStr) => { return path.resolve(__dirname, pathStr) } // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), createSvgIconsPlugin({ // 指定需要緩存的svg圖標文件夾,即需要識別的svg都應該放在這個文件夾下 // iconDirs: [path.resolve(process.cwd(), 'src/assets/svgs')], // 或 iconDirs: [pathResolve('./src/assets')], // 指定symbolId格式(這里的配置與6.2步驟中的引入svg組件的name配置項寫法有關) symbolId: 'icon-[dir]-[name]', }), ], resolve: { // 設置路徑別名 alias: { '@': pathResolve('./src'), } }, })
3、根據(jù)vite配置的svg圖標文件夾,建好文件夾,把svg圖標放入
4、在 src/main.js內(nèi)引入注冊腳本
import 'virtual:svg-icons-register'
5、創(chuàng)建一個公共SvgIcon.vue組件
src/components/SvgIcon.vue
<template> <svg aria-hidden="true" class="svg-icon"> <use :xlink:href="symbolId" rel="external nofollow" /> </svg> </template> <script> import { defineComponent, computed } from 'vue' export default defineComponent({ name: 'SvgIcon', props: { // 使用的svg圖標名稱,也就是svg文件名 name: { type: String, required: true, }, prefix: { type: String, default: 'icon', } }, setup(props) { const symbolId = computed(() => `#${props.prefix}-${props.name}`) return { symbolId } }, }) </script> <style scope> .svg-icon { width: 26px; height: 26px; fill: currentColor; } </style>
6、全局注冊SvgIcon.vue組件
在main.js中引入SvgIcon.vue組件,全局注冊后在需要使用SvgIcon組件的地方將無需再引入。
import { createApp } from 'vue' import './style.css' import App from './App.vue' import 'virtual:svg-icons-register' import SvgIcon from './components/SvgIcon.vue' createApp(App).component('SvgIcon', SvgIcon).mount('#app')
7、在想要引入svg的vue組件中引入
已App.vue 示例
<template> <!-- 使用不是在svgs目錄中嵌套文件夾下的svg圖標的name寫法:寫上svg圖標文件名即可 --> <SvgIcon class="delete-icon" name="home-fill"></SvgIcon> <!-- 使用是在svgs目錄中嵌套文件夾下的svg圖標的name寫法:中劃線前面是文件夾名稱,后面是svg圖標文件名稱 --> <!-- <SvgIcon class="edit-icon" name="msg-iconEdit"></SvgIcon> --> </template> <style lang="scss"> // 自定義svg顏色,寬高等樣式 // 注意:這里之所以能自定義svg顏色,是因為我在.svg文件中把fill="xxx顏色值" 改為了fill="currentColor" (見下面第7步驟描述) 建議直接刪掉 fill .delete-icon {color: pink;} .delete-icon:hover{ color: blue; } </style>
8、如果想要用color控制svg圖標顏色,那么需要修改.svg文件中的fill屬性 建議直接刪掉 fill
到此這篇關于Vue3+vite實現(xiàn)使用svg可改變顏色的全過程的文章就介紹到這了,更多相關Vue3+vite使用svg內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue手把手教你擼一個 beforeEnter 鉤子函數(shù)
這篇文章主要介紹了Vue手把手教你擼一個 beforeEnter 鉤子函數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04前端vue-cli項目中使用img圖片和background背景圖的幾種方法
這篇文章主要介紹了前端vue-cli項目中使用img圖片和background背景圖的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-11-11vue使用localStorage保存登錄信息 適用于移動端、PC端
這篇文章主要為大家詳細介紹了vue使用localStorage保存登錄信息 適用于移動端、PC端,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05