vue3项目引入svg-基于vuecli-webpack
在Vue 3项目中引入SVG图标,可以使用vue-svg-icon-loader
或svg-sprite-loader
。以下是使用svg-sprite-loader
的步骤和示例代码:
- 安装
svg-sprite-loader
:
npm install svg-sprite-loader --save-dev
- 在Vue 3项目中配置webpack:
修改vue.config.js
文件,添加以下配置:
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
chainWebpack: (config) => {
// 删除默认的svg loader
config.module.rules.delete('svg')
// 添加svg loader,将SVG作为组件导入
config.module
.rule('svg-sprite-loader')
.test(/\.svg$/)
.include
.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]',
})
.end()
}
})
- 创建一个用于存放SVG图标的目录,例如
src/icons
。 - 在组件中使用SVG图标:
<template>
<div>
<svg class="icon" aria-hidden="true">
<use :xlink:href="`#icon-${name}`"></use>
</svg>
</div>
</template>
<script>
export default {
props: {
name: {
type: String,
required: true
}
}
}
</script>
<style>
.icon {
width: 1em; height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
确保你的SVG文件的symbol ID与你在<use>
标签中引用的xlink:href
值相匹配。
以上步骤和代码展示了如何在Vue 3项目中通过svg-sprite-loader
引入和使用SVG图标。
评论已关闭