vue中使用svg-sprite-loader处理svg图片

本文记录了在Vue项目中使用svg-sprite-loader和svgo-loader处理SVG图片的过程,包括如何载入SVG、更改SVG样式、实现SVG无限旋转等功能。首先安装所需loader,然后统一引入SVG图标,创建自定义组件SvgIcon,通过设置spin属性实现SVG旋转动画。但这种方法存在局限,如可能清除原有SVG颜色,并可能导致复杂SVG颜色表现不佳。
摘要由CSDN通过智能技术生成

网上已经有很多文章写了相似的例子,不过自己实践之后还是把过程记录下来,这样知识就是自己的了。

版本:@vue/cli 4.4.1

实现内容:1.vue载入svg 2.能够更改svg样式 3.svg无限旋转

1.使用的loader:svg-sprite-loader、svgo-loader

我们在vue.config.js文件里找到chainWebpack属性,添加如下代码:

chainWebpack: config => {
   
    // ......
    config.module
        .rule('svg')
        .exclude.add(resolve('src/assets/icons/svg'))
        .end();
    config.module
        .rule('icons')
        .test(/\.svg$/)
        .include.add(resolve('src/assets/icons/svg'))
        .end()
        .use('svg-sprite-loader')
        .loader('svg-sprite-loader')
        .options({
   
            symbolId: 'icon-[name]',
        })
        .end();
    // .......

2.需要安装的loader:svg-sprite-loader、svgo-loader

npm i svg-sprite-loader svgo-loader -D

3.引入svg图片

我们在src/assets下新建icons文件夹,文件夹里再新建svg文件夹,将svg图片放至svg文件夹里。(具体路径可根据自己习惯配置)

4.统一引入svg图片

在src下新建icons文件夹,新建index.js文件(要注意路径的配置):

const req = require.context('@/assets/icons/svg/', false, /\.svg$/);
const requireAll = requireContext => requireContext.keys().map(requireContext);
requireAll(req);

5.在main.js中引入

import './icons';

6.在组件中使用

<!-- #icon-  为icon的前缀,XXX为icon名称 -->
<svg>
    <use 
  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值