vuecli3的svgicon_vue-cli3使用svg图标的详细步骤

本文介绍了如何在Vue CLI 3项目中设置SVG图标,包括安装svg-sprite-loader依赖,配置vue.config.js,创建svgIcon目录及文件,编写index.vue和index.js,挂载全局组件,并演示了如何导入和使用SVG图标。
摘要由CSDN通过智能技术生成

1.安装依赖npm install svg-sprite-loader -D

2.在vue.config.js里添加配置module.exports={

chainWebpack: config => {

const svgRule = config.module.rule("svg");

svgRule.uses.clear();

svgRule

.use("svg-sprite-loader")

.loader("svg-sprite-loader")

.options({

symbolId: "icon-[name]"

});

},

}

3a59bf4274cb3f3cf284c1273c4d2238.png

3.在src下创建文件夹svgIcon,并在该文件夹下创建index.vue,index.js和svg文件夹

b60d242bc0e66f415a241557ca6c28bd.png

4. index.vue的内容如下

export default {

name:'svgIcon',

props:{

data_iconName:{

type:String,

required:true

},

className:{

type:String,

default:''

}

},

computed:{

svgClass(){ //svg 的class

if(this.className){

return `svg-icon ${this.className}`;

}else{

return 'svg-icon'

}

},

iconName(){ //svg xlink-href 指向的文件名

return `#icon-${this.data_iconName}`;

}

}

}

.svg-icon{

width: 1em;

height: 1em;

vertical-align: -0.15em;

fill: currentColor;

overflow: hidden;

}

5. index.js的内容如下import Vue from "vue"

import svgIcon from "./index.vue"

Vue.component('svg-icon',svgIcon) //挂载全局组件

//下面这个是导入svgIcon/svg下的所有svg文件

const requireAll = requireContext => requireContext.keys().map(requireContext)

const req = require.context('./svg', false, /.svg$/)

/*

第一个参数是:'./svg' => 需要检索的目录,

第二个参数是:false => 是否检索子目录,

第三个参数是: /.svg$/ => 匹配文件的正则

*/

requireAll(req);

6.将 index.js导入到main.js中

ca12046a158b55d848dc4b9c63124678.png

7.使用,作为测试,我们先从阿里字体图标下载一个svg文件,放到svg文件夹下,如下图

(注:可以直接下载svg文件,改名为fullscreen.svg;也可以先创建fullscreen.svg文件,然后在阿里字体复制svg代码黏贴进去,效果是一样的)

9baeca51423624c274b38a9028d3fa80.png      c741a04a12c18398d6d3da4b695a216a.png

然后我们再home.vue里使用

export default {

name: 'Home',

}

6fbd1f19c19d6860adaae796ec4ddf5e.png

上面截图中的“fullscreen”对应的就是svg文件夹下的fullscreen.svg文件;“fullscreen_icon”就是添加的class,便于修改图标的大小

8.效果截图

a024a27d0992717e99369d5d73314562.png

b12eb38fcb821d20eb0abad51ea2edf0.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值