VUE3 加载自定义SVG文件的详细步骤
作者:fendouweiqian
网上代码通篇一律,需要修改多处地方,特别是component下还要创建一个index.vue的组件,奇奇怪怪。
要在 Vue 项目中使用 svg-sprite-loader
来管理 SVG 图标,你需要执行以下几个步骤:
npm install svg-sprite-loader -D
步骤 1: 配置 vue.config.js
确保你的 Vue 项目的根目录中有一个 vue.config.js
文件,用于自定义 Vue CLI 的内部 webpack 配置。如果文件不存在,你可以创建一个。在这个文件中,添加以下配置:
const path = require('path'); module.exports = { chainWebpack: config => { // SVG 规则排除 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: 重新编译
现在,你可以在任何组件中使用这些 SVG 图标。图标的 ID 将基于文件名,例如 icon-example
对应于 example.svg
文件。
请注意,这些步骤假设你的 Vue 项目是基于 Vue CLI 创建的。如果你的项目结构有所不同,可能需要相应地调整配置和路径。
到此这篇关于VUE3 加载自定义SVG文件的详细步骤的文章就介绍到这了,更多相关VUE3 加载自定义SVG文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!