Using react-g
Previous
理解事件传播路径
Next
Exporting the contents of the canvas
Loading...
react render for @antv/g
npm i @antv/react-g
react-g provide host-component:
Canvas
and Group
.Text
, Circle
, Ellipse
, Image
, Line
, Marker
, Path
, Polygon
and Polyline
.import React, { useState } from 'react';import { Canvas, Circle } from '@antv/react-g';import { Renderer as CanvasRenderer } from '@antv/g-canvas';const renderer = new CanvasRenderer();const App = () => {const [size, setSize] = useState(50);return (<Canvas width={600} height={400} renderer={renderer}><Circlex={100}y={200}r={size}fill="#1890FF"stroke="#F04864"lineWidth={4}onClick={() => {setSize(100);}}/></Canvas>);};export default App;
Like react-dom, you can use ref
to access the shape instance.
import React, { useState, useRef } from 'react';import { Canvas, Circle } from '@antv/react-g';import { Renderer as CanvasRenderer } from '@antv/g-canvas';const renderer = new CanvasRenderer();const App = () => {const circleRef = useRef();const [size, setSize] = useState(50);return (<Canvas width={600} height={400} renderer={renderer}><Circleref={circleRef}x={100}y={200}r={size}fill="#1890FF"stroke="#F04864"lineWidth={4}onClick={() => {setSize(100);}}/></Canvas>);};export default App;
render
react-g component to target g elementimport React, { useState } from 'react';import { Canvas as GCanvas } from '@antv/g';import { Circle, render } from '@antv/react-g';import { Renderer as CanvasRenderer } from '@antv/g-canvas';const renderer = new CanvasRenderer();const CircleComponent = () => {const [size, setSize] = useState(50);return (<Circlex={100}y={200}r={size}fill="#1890FF"stroke="#F04864"lineWidth={4}onMouseenter={() => {setSize(100);}}onMouseleave={() => {setSize(50);}}/>);};const canvas = new GCanvas({container: 'container', // DOM 节点idwidth: 600,height: 500,renderer,});// canvas can also be group/shaperender(<CircleComponent />, canvas);