博客
关于我
vue项目使用svg图片(svg-sprite-loader以及vue2-svg-icon的使用)
阅读量:327 次
发布时间:2019-03-04

本文共 2135 字,大约阅读时间需要 7 分钟。

一、使用svg的好处

第一种方式:

二、安装svg-sprite-loader

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

三、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]')        }      },

四、 创建svg的组件

 五、创建文件夹存放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 globallyVue.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: '
'})

七、在vue中使用

第二种方式:

一、安装vue2-svg-icon

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

二、引入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: '
'})

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

四、vue页面使用svg组件

 

转载地址:http://bakh.baihongyu.com/

你可能感兴趣的文章
mysql视图,索引和存储过程
查看>>
mysql解压没有data_Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)...
查看>>
Mysql解压版安装
查看>>
Mysql设置字符编码及varchar宽度问题
查看>>
MySQL设置白名单限制
查看>>
MySQL设置远程连接
查看>>
MYSQL语句。
查看>>
Mysql账号权限查询(grants)
查看>>
MYSQL输入密码后闪退的解决方法
查看>>
MySQL迁移到达梦:如何轻松、高质量完成迁移任务
查看>>
mysql返回的时间和实际数据存储的时间有误差(java+mysql)
查看>>
mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
查看>>
Mysql进入数据库
查看>>
mysql进阶 with-as 性能调优
查看>>
mysql进阶-查询优化-慢查询日志
查看>>
wargame narnia writeup
查看>>
MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)
查看>>
Mysql进阶索引篇03——2个新特性,11+7条设计原则教你创建索引
查看>>
Mysql连接时报时区错误
查看>>
mysql逗号分隔的字符串如何搜索
查看>>