关于svg

HTML页面常用加载svg图片方式:

  • HTML元素
// data 和 type 至少指定一项
<object data = './public/icon.svg' width='20' height='20' name='svg' type='image/svg+xml' usemap="#nameOfMap" ></object>
  • HTML元素(不推荐)
  • iframe
    <iframe src="./location-1.svg" frameborder="0" style="background-color: #666;"></iframe>

  • HTML元素
  • CSS[background-image]属性

react-svg

在react项目中使用svg,建议使用react-svg.

react-svg即一个封装后的React组件。它的目的在于利用SVGinjector把SVG添加到DOM中。

import React from 'react';
import ReactDOM from 'react-dom';
import ReactSVG from 'react-svg'; ReactDOM.render(
<ReactSVG
path="atomic.svg"
callback={svg => console.log(svg)}
className="class-name"
wrapperClassName="wrapper-class-name"
/>,
document.querySelector('.Root')
);

在实际开发中,使用上面的方法插入svg同样繁琐。利用react-svg-loader插件可以简化上述过程:

// 不使用webpack
import Image1 from 'react-svg-loader!./image1.svg'; // 使用webpack配置了react-svg-loader
import Image2 from './image1.svg'; // 像普通react组件那样使用它, react-svg-loader会在自动将它替换为DOM
<Image1 width={50} height={50}/>
<Image2 width={50} height={50}/>

webpack中设置:

{
test: /\.svg$/,
use: [
{loader: 'babel-loader'}
{
loader: 'react-svg-loader'
}
] }

react-svg-loader内部流程

输入svg -> 使用SVGO进行SVG优化 -> 编译转换

因此webpack中可以配置SVGO参数

{
test: /\.svg$/,
use: [
{loader: 'babel-loader'}
{
loader: 'react-svg-loader',
options:{
svgo: [
{
removeTitle: false
}
] }
}
] }

其他

最新文章

  1. linux I/O复用
  2. js 实现动态key value(JSON字符串注意事项:key和value都要用双引号,官网指定用双引号)
  3. SQL Server 添加链接服务器
  4. web前端网页特效大全导航列表
  5. plsql developer 使用技巧
  6. Javascript高级篇-面向对象的特性
  7. 性能瞬间飙升!教你如何组RAID0磁盘阵列
  8. JUnit test case 执行顺序
  9. 关于quotename的用法
  10. ●洛谷P3242 [HNOI2015]接水果
  11. 使用pypi-server搭建简单的PyPI源
  12. BZOJ.4160.[NEERC2009]Exclusive Access 2(状压DP Dilworth定理)
  13. SAMTOOLS使用 SAM BAM文件处理
  14. Hillstone设备管理-许可证安装
  15. django —— MVT模型
  16. php 操作redis 以及几个常用命令
  17. Spring基础(9) : 自动扫描
  18. GitHub 在使用命令行 git push 时报错:The requested URL returned error: 403
  19. Inception系列
  20. 思维题(两点逼近)LeetCode11 Container with Most Water

热门文章

  1. Java设计模式—备忘录模式
  2. IoT Gateway Based on OSGi
  3. 手动替换WORDPRESS的GOOGLE字体等加速【非插件】
  4. 如何登陆FTP服务器下载文件
  5. android toast使用方法
  6. 小程序UI
  7. LDF文件丢失, 如何仅用MDF文件恢复数据库呢?
  8. 使用CALayer制作View的辉光效果
  9. 【Git】创建一个空分支
  10. (MUA)mutt-&quot;No authenticators available&quot; 发送不出去邮件