关于antv:x6-react-最佳实践
x6 react 最佳实际 提供一个react下应用X6的最佳范本: 简略易用,易于做逻辑拆分体积小(gzip压缩后小于0.5k)反对多实例反对应用ref绑定x6 graph装置npm install react-x6-graphyarn add react-x6-graph设计定义画布组件 // 应用GraphContext存储理论的x6 graph对象const GraphContext = createContext()// 导出一个Graph组件,反对父组件传递ref拿到graph对象export const Graph = forwardRef((props, ref) => { const [graph, setGraph] = useState(null) const realRef = ref || createRef() const { container, children, ...other } = props // 如果传递了container,就应用传进来的container初始化画布 // 否则组件本人渲染一个div来初始化画布 const containerRef = createRef(container) useEffect(() => { if (containerRef.current && !realRef.current) { const graph = new X6.Graph({ container: containerRef.current, ...other, }) setGraph(realRef.current = graph) } }, []) return ( <GraphContext.Provider value={graph}> {containerRef.current ? null : <div ref={containerRef} />} {!!graph && children} </GraphContext.Provider> )})// 导出一个帮忙函数以便Graph组件的子组件获取x6 graph对象export const useGraphInstance = () => useContext(GraphContext)应用 ...