(svg-sprite-loader以及vue2-svg-icon的使用)

第一种方式:

1、安装svg-sprite-loader

        npm install svg-sprite-loader --save-dev

2、webpack 配置(build/webpack.base.conf.js)

        

{
test: /\.svg$/,
loader: 'svg-sprite-loader',
include: [resolve('src/icons')],
options: {
symbolId: 'icon-[name]'//去掉svg这个图片加载不出来
}
},{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
//这个不处理svg图片,因为我们独立拆开让svg-sprite-loader来处理了
exclude: [resolve('src/icons')],options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},

3、创建svg的组件

        

<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 scoped>
.svg-icon {
width: 10rem;
height: 10rem;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>

4、创建文件夹存放svg的图标,同时注册svg组件到vue里面(index.js)

单个使用如下:
import './assets/svg/target.svg';
<svg><use xlink:href="#target" /></svg>
嗯,就这样短短一行。xlink:href 中传入 svg ID 就好了,由于在上面的配置文件中我们直接使用文件名作为 symbol 的 ID,所以这里传入的 ID 即为你想显示的图标的 svg 文件名,记得加上 #。
所有svg文件自动导入
index.js代码如下,自动导入 src/icons/svg/ 下的 svg 文件。

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg组件// register globally
Vue.component('svg-icon', SvgIcon)const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
六、在main.js中引入
import Vue from 'vue'
import App from './App'
import router from './router'
//引入整个icons,
import './icons'Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'

5、在vue中使用

<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
<svg-icon icon-class="smile" size="10"></svg-icon></div>
</template><script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
}
}
</script><!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

第二种方式:

1、安装vue2-svg-icon

        npm install vue2-svg-icon --save-dev

2、引入main.js并注册组件

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
//import './icons/index.js'
//引入vue2-svg-icon并且注册组件
import Icon from 'vue2-svg-icon/Icon'
Vue.component('icon',Icon);Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})

3、新建存放svg图片的目录(这个包默认是从assets/svg下面找svg图片的,不要问我为什么

4、vue页面使用svg组件

vue项目使用svg图片相关推荐

  1. vue中使用 svg图片

    vue中使用 svg图片 1.assets 中新建 icons 文件夹:icons文件夹下 svg 是svg图片,index.js,svgo.yml 文件如下: a. index.js import ...

  2. Vue 加载 SVG 图片文件

    Vue 加载 SVG 图片文件 /svg/icons.js export default {// LOGOlogo: require('./logo.svg'),logo_content: requi ...

  3. 在vue项目中实现图片打马赛克

    在vue项目中实现图片打马赛克 使用image-mosaic插件. 安装依赖 npm install image-mosaic -D 项目引用 // .vue 文件 <div id=" ...

  4. vue中使用svg图片

    1.安装依赖包 svg-sprite-loader npm install svg-sprite-loader --save-dev 2.配置svg图片使用svg-sprite-loader来编译-- ...

  5. vue项目中,图片无法显示时或者访问图片出现404时,显示默认图片,但默认图片路径出错

    问题描述 在vue项目中,同样的图片,设置在img的src中能正常显示  设置在img的onerror中不能正常显示 原因 项目启动后, 图片的路径并不是我们写的路径了. 示例:  源代码: // 直 ...

  6. vue项目使用svg文件

    在vue中使用 svg 有两种方式: 1.使用本地的svg 2.把本地的 svg 上传到 iconfont中,统一生成 symbol 格式的文件引入 本地svg导入 一.建立模板组件 本质上就是构建自 ...

  7. vue项目nginx代理图片访问请求

    vue前台访问springboot项目图片,路径无法访问到图片文件,需要做下地址转换,推荐在springboot中配置虚拟路径,但是如果很多地方已经配置的磁盘路径,修改的地方比较多,可以使用nginx ...

  8. vue项目 使用svg渲染地图 并添加点击事件,动态改变背景颜色

    需求: ui给了一张地图的svg,需要前端渲染出来并添加对应的点击事件,选中区域,背景颜色需要改变 实现思路: 1.拿到需要渲染的 svg图片,把其中path的值赋值过来,所有数据一起组成一个新的js ...

  9. vue项目中svg图(svg标签)的使用方法

    几天前,ui无法把我拉进项目iconfont库,只好切了一份svg图包给我,于是琢磨了怎么用,简单地记录一下 其实所在项目什么都配置好了,真正用到的只有最后一项 1. 安装依赖 npm install ...

最新文章

  1. 书值 | 第 2 期:成为技术管理者,思维上应该如何转变?
  2. dede5.7 GBK 在php5.4环境下 后台编辑器无法显示文章内容
  3. 数据结构与算法笔记(九)—— 希尔排序
  4. 【机器学习】集成模型方法
  5. 二叉树序列化与反序列化相关题目(Leetcode题解-Python语言)
  6. Spring: (一) -- 春雨润物之 核心IOC
  7. (转)em重建全过程
  8. mknod 创建内核设备文件【原创】
  9. python flask的request模块以及在flask编程中遇到的坑
  10. 【GIS导论】实验五 缓冲区分析和网络分析
  11. 基于SSM的多人协作家庭记账系统
  12. 图像变换中的常用插值方法(含公式推导)
  13. 大学生端午节网页作业制作 学生端午节日网页设计模板 传统文化节日端午节静态网页成品代码下载 端午节日网页设计作品
  14. win7系统安装硬盘格式转换问题
  15. live2d_二次元 | live2d为你的网站博客增加萌萌哒的看板娘
  16. Hex文件头部修改软件
  17. 「NOI2018」冒泡排序
  18. IIS服务器开启https
  19. 微信小程序template模板与component自定义组件的区别和使用
  20. Python 3.x爬虫技巧总结

热门文章

  1. PHP制作简单图床,利用微博当图床-php语言实现
  2. 数据扒一扒《隐秘的角落》到底怎么火的?
  3. 空间分析方法在计算机上的应用,空间分析
  4. 电脑突然上不了网,而且ping网关可以通
  5. sql sever 存储过程总结及实验
  6. 我的世界服务器无限制区块,我的世界所有区块同时加载,内存多惊人?162万个100T硬盘装不下...
  7. 密码学之RSA加密原理解析
  8. Oracle数据库:子查询、单行子查询,多行子查询,in,any,all语句,子查询的练习案例
  9. pycharm 更换 pip 下载源
  10. Web前端和后端的异同