svg-sprite-loader ( svg-icon) 使用
程序员文章站
2022-07-09 21:11:47
svg-sprite-loader 可以多个svg图标合并. 使用时只需根据合并的symbol的id即可.
svg-sprite-loader 可以多个svg图标合并. 使用时只需根据合并的symbol的id即可.
<svg class="svg-icon" aria-hidden="true" v-on="$listeners">
<use xlink:href="symbol的id" />
</svg>
// 项目使用vue cli 搭建
1. 首先 svg-sprite-loader
npm install -d svg-sprite-loader
2. 更改vue.config.js webpack的配置
chainwebpack: config => { config.module.rules.delete('svg'); //重点:删除默认配置中处理svg, config.module .rule('svg-sprite-loader') .test(/\.svg$/) .include.add(resolve('src/assets/icons/svg')) //处理svg目录 .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolid: 'icon-[name]', }); }
由于更改了svg的处理方式, 如果不是所有svg都处理成svgicon还要添加 svg的处理
configurewebpack: { module: { rules: [ { test: /\.(svg)(\?.*)?$/, exclude: [resolve('src/assets/icons')], use: [ { loader: 'file-loader', options: { name: 'img/[name].[hash:8].[ext]', }, }, ], }, ], }, }
* 注意以上路径的区别.
3. 一个一个导入svg太麻烦. 没错有办法.
import vue from 'vue'; import svgicon from './svgicon.vue'; vue.component(svgicon.name, svgicon); const req = require.context('@/assets/icons', true, /\.svg$/); const requireall = requirecontext => requirecontext.keys().map(name => requirecontext(name)); requireall(req);
导入指定目录下的所有svg文件.
4. 当然也可以注册一个全局组件 ,使用时更加简洁.
<template> <svg class="svg-icon" aria-hidden="true" v-on="$listeners"> <use :xlink:href="name" /> </svg> </template>
下一篇: Java之路---Day11(接口)
推荐阅读
-
windows下关于sublime text2,HTML/CSS/JS Prettify插件使用路径问题处理
-
scratch儿童编程软件使用时遇到物体碰到边缘反弹并倒过来怎么办?
-
Sublime Text 2 JS 格式化插件 JsFormat的配置使用
-
如何正确理解和使用Activity的4种启动模式
-
ThinkPad W500的购买及使用感受
-
微信遗嘱有法律效力吗 微信app立遗嘱使用方法详解
-
UG怎么绘制工程图纸? UG的基础使用教程
-
省点花锦鲤卡app怎么激活 省点花锦鲤卡激活后怎么使用
-
Android自定义View 使用PathMeasure简单模仿系统ProgressBar(四)
-
solidworks零件模型怎么使用剖面命令?