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