React JS 前端中的 SVG 绘图
在本文中,我们将看到如何创建一个界面,用户可以在该界面上创建绘图、写名字和几乎任何艺术作品。您可以使用此功能允许用户在页面上签名。在这里,我们将使用“react-hooks-svgdrawing”包。
首先创建一个 React 项目 -
npx create-react-app tutorialpurpose
转到项目目录 -
cd tutorialpurpose
示例
安装react-hooks-svgdrawing包 -
npm i --save react-hooks-svgdrawing
这个库将用于实现容器,它允许我们使用鼠标或触摸板以 SVG 的形式绘制图形或任何东西。
在App.js中添加以下代码行-
import React, { useCallback } from "react";import { useSvgDrawing } from "react-hooks-svgdrawing";
export default function App() {
const [renderRef, draw] = useSvgDrawing({
penWidth: 10, //笔宽
penColor: "#e00", //笔颜色
close: false, //对路径使用 close 命令。默认为假。
curve: true, //对路径使用曲线命令。默认为真。
delay: 60, //设置每次绘制点的毫秒数。
fill: "none", //设置路径的填充属性。默认为“无”
});
const handleDownload = useCallback(() => {
draw.download(); //默认svg下载
draw.download({ extension: "svg", filename: "a.svg" });
draw.download({ extension: "png", filename: "b.png" });
draw.download({ extension: "jpg", filename: "c.jpg" });
}, [draw.download]);
const handleChangeParameter = useCallback(() => {
// Change pen config draw.changePenColor("#00b");
//改变画笔宽度 draw.changePenWidth(10);
// Change fill attribure of svg path element. draw.changFill("#00b");
//更改绘图的油门延迟 draw.changeDelay(10);
//设置是否对 svg 路径元素使用弯逗号。draw.changCurve(false);
//设置是否对 svg 路径元素使用弯逗号。draw.changeClose(true);
}, [draw]);
return (
<div>
<div
style={{ width: 500, height: 500, border: "1px solid black" }}
ref={renderRef} />
<button onClick={draw.clear}>clear</button>
<button onClick={draw.undo}>undo</button>
<button onClick={handleDownload}>download</button>
</div>
);
}
解释
useSvgDrawing有两个参数
一个是引用,它被分配给任何元素以使区域或元素可绘制,并且
第二个参数是draw,它通常处理每个设置,如笔宽、笔颜色、下载绘图、撤消、清除等。
输出结果
现在,让我们检查输出 -
<video "="" controls="" xx_src="https://www.nhooo.com/assets/questions/media/57041/889877-1632899044.mp4">您的浏览器不支持 HTML5 视频。
以上是 React JS 前端中的 SVG 绘图 的全部内容, 来源链接: utcz.com/z/297049.html