svg矢量图有时候在项目中用起来当然要比图片用起来好。之前没有用过svg,这次花了一点时间在项目中支持了svg的使用,个人感觉用起来还是没有直接用font class的爽,然后又改成font class的使用,如下我说一下我是如何配置svg和font class的(这两者都是iconfont 的不同使用方法):

一. 使用svg

1. 在package.json中引入svg-sprite-loader

2. 在vue.config.js中配置webpack,代码如下:

chainWebpack: config => {
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
}

3. 在src下边创建一个icons文件夹(里面放需要用到的svg图标)

4.再写一个全局通用的组件SvgIcon.vue

/*
svg-icon的用法:
1. http://www.iconfont.cn网站上找到自己需要的图标
2. 设置自己需要的颜色(也可以直接下载下来再设置颜色)
3. 下载svg格式放到icons文件夹下边
4. 在别的文件中引用(import 'ICONS/***.svg')
5. 使用<svg-icon :icon-class="'***'" width="18" height="18"></svg-icon>
*/
<template>
<svg :class="svgClass" aria-hidden="true">
<use :xlink:href="iconName"/>
</svg>
</template> <script>
export default {
name: 'SvgIcon',
props: {
iconClass: {
type: String,
required: true
},
className: {
type: String,
default: ''
}
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
},
svgClass() {
if (this.className) {
return 'svg-icon ' + this.className
} else {
return 'svg-icon'
}
}
}
}
</script> <style lang="scss" scoped>
.svg-icon {
vertical-align: middle;
fill: currentColor;
overflow: hidden;
}
</style>

5. 因为上边的这个组件是全局通用的,所以要在项目加载的第一时间把它注册到全局Vue中去,在入口文件main.js中设置

import SvgIcon from 'COMPONENTS/SvgIcon'

。。。

Vue.component('svg-icon', SvgIcon)

6. 经上边的设置后,npm install ,重新build项目之后就可以了(像上边看到的ICONS 或 COMPONENTS,都是在配置文件中添加的路径别名)

二. 设置font class的使用

1. 在http://www.iconfont.cn创建一个的项目,然后把自己设计的svg图标上传到自己的项目下边(也可以把别的项目里面的图标加到购物车,再添加到自己的项目里)

2. 拷贝项目下边生成的fontclass代码(.css代码)

//at.alicdn.com/t/font_8d5l8fzk5b87iudi.css

3. 挑选相应图标并获取其类名,应用于网页:

<i class="iconfont icon-xxx"></i>

svg在vue-cli3中的配置的更多相关文章

  1. Vue Cli3 中别名的配置问题

    Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...

  2. @vue/cli3中解决Elint中console.log报错的问题

    方法一:package.json中”eslintConfig”>"rules”字段添加如下代码 "no-console": "off", &qu ...

  3. 「Vue」Vue cli3中引用mui-ui问题及解决办法

    1.引用mui.js无效,top-bar划动,numbox点击无效等问题 解决办法: -main.js中import mui from './lib/mui/js/mui.js' Vue.protot ...

  4. Vue 项目中 ESlint 配置

    前言 对于 ESlint 这一块一直存在一些疑问,今天看到一个文章内容挺好的,这里拿来了. 一.eslint 安装 1.全局安装 npm i -g eslint 全局安装的好处是,在任何项目我们都可以 ...

  5. 说下vue工程中代理配置proxy

    这个代理配置不需要后台进行ngnix代理跳转了,前端可以做.在vue.config.js文件中进行配置,如下: module.exports = { publicPath: process.env.V ...

  6. rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签

    在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clien ...

  7. vue项目中全局配置变量

    在项目中api管理需要用到全局变量,创建全局变量的方式也有很多. 1.通过export default const BASEURL = "http://localhost:3333/&quo ...

  8. 「Vue」vue cli3中axios的基本用法

    1.安装axiosnpm i axios -S2.main.js中设置import axios from 'axios'Vue.prototype.$axios = axiosPS:这里有个小坑,ax ...

  9. 前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx)

    前言 最近做的一个项目中使用了vue+springboot的前后端分离模式 在前端开发的的时候,使用vue cli3的devServer来解决跨域问题 上线部署则是用的nginx反向代理至后台服务所开 ...

  10. vue cli3以上的项目中如何使用axois请求本地json文件

    首先明确一点,在vue cli3以上的版本中,存放静态资源的文件是public 我刚开始以为是和vue cli2一样需要放在static文件夹下,但是项目中没有这个文件夹,我就自己创建了一个,结果请求 ...

随机推荐

  1. pycrypto安装各种方法试了,最后这种最快速最方便

    需要安装vs,然后按照如下步骤 这个不是在cmd中执行 而是在vs的命令行中执行

  2. 微信小程序之点击列表的item带参数跳转界面

    1.在js文件里写个界面跳转的事件处理函数gotableinfo,var index = parseInt(e.currentTarget.dataset.index); 为获取当前点击列表的下脚标, ...

  3. window.location各属性的值

    window.location各属性的值 window.location.href            "https://i.cnblogs.com/EditPosts.aspx?opt= ...

  4. io读取遇到的问题

    使用Inputstream输入流读取数据的时候总要使用一个额byte[]数组进行读取 byte[] b= new byte[1024]; while((len = in.read(b)) != -1) ...

  5. spring 动态代理

    突然想到AOP,就简单回忆一下动态代理.1.什么是动态代理? 假如有个用户有增删该查4个方法,如果要对用户操作后进行日志记录,可能会有人说直接在增删改查后做日志记录就行. 一旦我想在用户操作之前加一个 ...

  6. Java中HBase的集中過濾器

    比較過濾器:    rowKey过滤器 RowFilter    列族过滤器 FamilyFilter    列过滤器               QualifierFilter    列值过滤器   ...

  7. 《DSP using MATLAB》Problem 7.25

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  8. C# 切分图片

    public void Slice() { // 图片路径 var file = "F;/aaa.png"; // 水平切分 ; // 纵向切分 ; ; i < horizo ...

  9. C语言练习题库----数组

    有如下语句 int a[10] = {1,2,3,4,5,6,7,8,9,10};int *p = a;则数值为9的表达式是______ *p+9                       b)   ...

  10. zabbix免客户端监控网站URL

    1.我们需要在zabbix服务器端(这台服务器需要能正常上网)同时安装zabbix-agent客户端,使其正常监控zabbix服务器 2.创建web监测 点击web监测 创建web监测 3.配置异常报 ...