博客
关于我
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/

你可能感兴趣的文章
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>