分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

【HTML5-基础-SVG实践】

发布时间:2023-09-06 02:18责任编辑:苏小强关键词:HTML

关于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插件可以简化上述过程:

// 不使用webpackimport Image1 from ‘react-svg-loader!./image1.svg‘;// 使用webpack配置了react-svg-loaderimport 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 ???????????????} ????????????] ??????????????????????????????????????} ???????} ???] ???}

其他

【HTML5-基础-SVG实践】

原文地址:https://www.cnblogs.com/wanxiong/p/html5-basic-svg-implement.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved