VUE3 加載自定義SVG文件的詳細步驟
網(wǎng)上代碼通篇一律,需要修改多處地方,特別是component下還要創(chuàng)建一個index.vue的組件,奇奇怪怪。
要在 Vue 項目中使用 svg-sprite-loader
來管理 SVG 圖標,你需要執(zhí)行以下幾個步驟:
npm install svg-sprite-loader -D
步驟 1: 配置 vue.config.js
確保你的 Vue 項目的根目錄中有一個 vue.config.js
文件,用于自定義 Vue CLI 的內部 webpack 配置。如果文件不存在,你可以創(chuàng)建一個。在這個文件中,添加以下配置:
const path = require('path'); module.exports = { chainWebpack: config => { // SVG 規(guī)則排除 icons 目錄 config.module.rule('svg') .exclude.add(path.resolve('src/assets/icons')) // 添加 icons 目錄的 SVG loader config.module.rule('icons') .test(/\.svg$/) .include.add(path.resolve('src/assets/icons')).end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) } };
這個配置告訴 webpack 對于 src/assets/icons
目錄中的 .svg
文件,使用 svg-sprite-loader
來處理它們。其他目錄中的 .svg
文件將使用項目中默認的 SVG loader。
步驟 2: 添加 SVG 圖標
將你的 SVG 圖標放置在 src/assets/icons
目錄中。例如,你可以有一個名為 example.svg
的圖標。
一個簡單的 SVG 圖標可能看起來像這樣:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/> </svg>
步驟 3: 全局引入 SVG 圖標
在項目的入口文件(通常是main.js
或 main.ts
)中添加全局 SVG 導入。例如:
import { createApp } from 'vue'; import App from './App.vue'; // 導入 SVG 圖標 const req = require.context('./assets/icons', false, /\.svg$/); const requireAll = context => context.keys().map(context); requireAll(req); createApp(App).mount('#app');
步驟 4: 使用 SVG 圖標
在你的組件中,你應該能夠通過 symbolId 引用 SVG 圖標,就像這樣:
<template> <svg class="icon" aria-hidden="true"> <use xlink:href="#icon-example" rel="external nofollow" ></use> </svg> </template>
其中 icon-example 是你的 SVG 文件名。
步驟 5: 重新編譯
現(xiàn)在,你可以在任何組件中使用這些 SVG 圖標。圖標的 ID 將基于文件名,例如 icon-example
對應于 example.svg
文件。
請注意,這些步驟假設你的 Vue 項目是基于 Vue CLI 創(chuàng)建的。如果你的項目結構有所不同,可能需要相應地調整配置和路徑。
到此這篇關于VUE3 加載自定義SVG文件的詳細步驟的文章就介紹到這了,更多相關VUE3 加載自定義SVG文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue實現(xiàn)的微信機器人聊天功能案例【附源碼下載】
這篇文章主要介紹了vue實現(xiàn)的微信機器人聊天功能,結合實例形式分析了基于vue.js的微信機器人聊天相關界面布局、ajax交互等操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2019-02-02解決vue創(chuàng)建項目使用vue-router和vuex報錯Object(...)is not a&nb
這篇文章主要介紹了解決vue創(chuàng)建項目使用vue-router和vuex報錯Object(...)is not a function問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Vue2.0 v-for filter列表過濾功能的實現(xiàn)
今天小編就為大家分享一篇Vue2.0 v-for filter列表過濾功能的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue-cli結合Element-ui基于cropper.js封裝vue實現(xiàn)圖片裁剪組件功能
這篇文章主要介紹了vue-cli結合Element-ui基于cropper.js封裝vue實現(xiàn)圖片裁剪組件功能,本文圖文并茂給大家介紹的非常詳細,需要的朋友可以參考下2018-03-03