Skip to main content

Home > @jsplumbtoolkit/browser-ui-react

browser-ui-react package

Provides integration with React (17+). This package has a dependency on @jsplumbtoolkit/browser-ui.

For a detailed discussion of this package, see


BaseGroupComponentBase component that your group components can extend, to get access to a few helper methods. It is not imperative that you extend this component.
BaseNodeComponentBase component that your node components can extend, to get access to a few helper methods. It is not imperative that you extend this component.
BasePortComponentBase class for components that render Ports. Your port components can extend this to get access to a few helper methods. You are expected to supply a parent
BrowserUIReactExtension of the Toolkit suitable for use with the React integration.
EdgeTypePickerComponentA helper component to support the selection of an edge type from a set of edge property mappings.
JsPlumbToolkitDragDropComponentProvides a React component wrapper around the Toolkit's DropManager.
JsPlumbToolkitMiniviewComponentjsPlumb Toolkit Miniview Component
JsPlumbToolkitSurfaceComponentProvides a React component that fronts a surface widget.
ShapeComponentA component that renders an SVG shape.
SurfaceDropComponentSurface Drop Component - draggable nodes. This is an abstract component. You are expected to provide the render method.


newInstance(options)Creates a new instance of the Toolkit for use with the React integration.


ControlsComponentPropsProps for the controls component.
DragDropPropsProps for the JsPlumbToolkitDragDropComponent. Most users will probably want to use the SurfaceDropComponent instead.
DragDropStateState object for drag/drop component.
EdgeTypePickerComponentPropsProps for the EdgeTypePickerComponent
MiniviewPropsProps for the miniview component.
ShapeComponentPropsProps for the ShapeComponent.
SurfaceDropPropsProps for SurfaceDropComponent

Props for the Surface component. You are expected to provide, at a minimum, an instance of BrowserUIReact to this component, and in practise you will also almost certainly want to pass a view and renderParams.

Asynchronous rendering ----------------------

From version 5.8.0 onwards this component will, by default, render vertices "asynchronously", which is to say that it will hold off informing the Toolkit that the rendering of some vertex has been completed until an internal ResizeObserver detects that the initial hydration of the element is complete. This mechanism is of particular use when you're bulk loading data and you're using React 18, as React 18's rendering pipeline does not always hydrate a component immediately, and the Toolkit cannot therefore effectively run a layout or compute the positions of connectors.

ResizeObserver is supported on all recent versions of modern browsers, but not on IE11. In the absence of ResizeObserver, the component will fall back to the "synchronous" rendering mechanism.

It is extremely unlikely you will want to switch off asynchronous rendering, but you can do so by setting the prop asynchronous to false.

Type Aliases

Type AliasDescription