在Vue中引入SVG图标的多种实现方案_vue.js
SVG 图标因其矢量特性、高清晰度及样式易定制等优势,已成为现代 Web 开发的首选。在 Vue 项目中优雅地引入 SVG 图标可通过多种方案实现,下面将详细解析四种主流方案。
适用于简单场景,但无法动态修改样式。
将 SVG 转换为可复用的 Vue 组件。
npm install vue-svg-loader svgo-loader --save-dev# 或yarn add vue-svg-loader svgo-loader -D
module.exports = { chainWebpack: (config) => { config.module .rule('svg') .exclude.add(resolve('src/icons')) // 排除原文件夹处理规则 .end(); config.module .rule('icons') .test(/\.svg$/) .include.add(resolve('src/icons')) // 指定 SVG 目录 .end() .use('vue-svg-loader') .loader('vue-svg-loader') .options({ svgo: { plugins: [{ removeViewBox: false }] } // 保留 viewBox 属性 }); }};
合并所有 SVG 为单个雪碧图,通过 引用。
npm install svg-sprite-loader --save-dev
module.exports = { chainWebpack: (config) => { // 默认 SVG 规则排除 icons 目录 config.module .rule('svg') .exclude.add(path.resolve(__dirname, 'src/icons')) .end(); // 添加 icons 目录专属规则 config.module .rule('icons') .test(/\.svg$/) .include.add(path.resolve(__dirname, 'src/icons')) .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }); // symbolId 命名规则 }};
const req = require.context('./icons', false, /\.svg$/);req.keys().map(req);
基于按需导入的现代解决方案,无需手动管理 SVG 文件。
以上就是在Vue中引入SVG图标的多种实现方案的详细内容,更多关于Vue引入SVG图标的资料请关注脚本之家其它相关文章!
本文地址: https://www.earthnavs.com/jishuwz/89c68892b24bb204c160.html






















