svg在vue-cli3中的配置
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中的配置的更多相关文章
- Vue Cli3 中别名的配置问题
Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...
- @vue/cli3中解决Elint中console.log报错的问题
方法一:package.json中”eslintConfig”>"rules”字段添加如下代码 "no-console": "off", &qu ...
- 「Vue」Vue cli3中引用mui-ui问题及解决办法
1.引用mui.js无效,top-bar划动,numbox点击无效等问题 解决办法: -main.js中import mui from './lib/mui/js/mui.js' Vue.protot ...
- Vue 项目中 ESlint 配置
前言 对于 ESlint 这一块一直存在一些疑问,今天看到一个文章内容挺好的,这里拿来了. 一.eslint 安装 1.全局安装 npm i -g eslint 全局安装的好处是,在任何项目我们都可以 ...
- 说下vue工程中代理配置proxy
这个代理配置不需要后台进行ngnix代理跳转了,前端可以做.在vue.config.js文件中进行配置,如下: module.exports = { publicPath: process.env.V ...
- rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签
在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clien ...
- vue项目中全局配置变量
在项目中api管理需要用到全局变量,创建全局变量的方式也有很多. 1.通过export default const BASEURL = "http://localhost:3333/&quo ...
- 「Vue」vue cli3中axios的基本用法
1.安装axiosnpm i axios -S2.main.js中设置import axios from 'axios'Vue.prototype.$axios = axiosPS:这里有个小坑,ax ...
- 前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx)
前言 最近做的一个项目中使用了vue+springboot的前后端分离模式 在前端开发的的时候,使用vue cli3的devServer来解决跨域问题 上线部署则是用的nginx反向代理至后台服务所开 ...
- vue cli3以上的项目中如何使用axois请求本地json文件
首先明确一点,在vue cli3以上的版本中,存放静态资源的文件是public 我刚开始以为是和vue cli2一样需要放在static文件夹下,但是项目中没有这个文件夹,我就自己创建了一个,结果请求 ...
随机推荐
- CSS学习笔记_day3
一.浮动的清除 1.给祖先元素加高度 <style> * { padding: 0; margin: 0; } .box1 { height: 100px; /**/ } ul { /*去 ...
- css flex方法标题左右两边平衡线
<html> <div class="title"> <div class="line"></div> < ...
- MySQL-01-基础
大纲 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default character utf8 ...
- nexus 随笔
离线更新中央仓库索引的方式,速度快并且可靠. 访问http://repo.maven.apache.org/maven2/.index/下载中心仓库最新版本的索引文件,我们需要下载如下两个文件nexu ...
- REST SOAP Thrift 对比
别人的REST SOAP Thrift对比: 单项分数越高越好 项目 REST SOAP Thrift Extensibility 5 3 1 Neutrality 2 4 3 Independenc ...
- Netty 之 Netty生产级的心跳和重连机制
https://blog.csdn.net/z69183787/article/details/52625095 最近工作比较忙,但闲暇之余还是看了阿里的冯家春(fengjiachun)的github ...
- Hot Chocolate 一个.net 平台的graphql 框架
在看昨天发布的新版技术雷达中,看到了一个.net 的graphql 框架Hot Chocolate 还是比较激动,尽管好久不搞 .net 了,但是这个框架还是值得看看的,后边学习下 参考资料 http ...
- Application、QueryString、session、cookie、ViewState、Server.Transfer等
Application: WebForm1.aspx: protected void Button1_Click(object sender, EventArgs e) { ; Response.Re ...
- python随机数学习笔记
#coding:utf-8 import random # random.randint(1,10)产生1,10的随机整数 for i in range(1,5): ranint = random.r ...
- 生成用于ROM初始化的coe文件---使用matlab
生成用于ROM初始化的coe文件---使用matlab t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; r=ceil(y*(2^8-1)); fid = fopen('si ...