react-art icon indicating copy to clipboard operation
react-art copied to clipboard

Remove dependency on react-dom

Open fabslab opened this issue 10 years ago • 7 comments

With 0.14 React release the core React library is split from the DOM renderer in order to encourage projects like this to create their own rendering system. Are there plans to make a new renderer or will react-art continue to use react-dom? Will there be tutorials on the React site in the future on how authors can create their own renderer (what integration methods are required etc)?

fabslab avatar Oct 08 '15 03:10 fabslab

Yea, the idea is that eventually React ART will integrate its own renderer and eventually we'll have a publicly supported way of doing so. The big blocker is making it work seamlessly across renderers with context etc.

This is related too. https://github.com/facebook/react/pull/4230

sebmarkbage avatar Oct 08 '15 20:10 sebmarkbage

Note that even <Surface /> doesn't need a dependency on react-dom since it can render the tag as a string and the ref resolves directly to the node.

sebmarkbage avatar Oct 08 '15 20:10 sebmarkbage

It already doesn't depend on react-dom:

https://github.com/reactjs/react-art/blob/d98e74e2af1d8dd1316dd78fc4b3173048e43d40/package.json#L20-L26

(That's not a practical help right now since there aren't any other DOM renderers.)

sophiebits avatar Oct 08 '15 21:10 sophiebits

But react-art assumes the user is using ReactDOM doesn't it? As given in your example https://github.com/reactjs/react-art/blob/master/examples/vector-widget/app.js#L7

fabslab avatar Oct 08 '15 21:10 fabslab

Yea this probably breaks without it. https://github.com/reactjs/react-art/blob/master/src/ReactART.js#L198

sebmarkbage avatar Oct 08 '15 21:10 sebmarkbage

@sebmarkbage I think that's actually fine? That points to the composite.

sophiebits avatar Oct 08 '15 21:10 sophiebits

@spicyj Not if that composite was rendered by a different renderer than react-dom. Unless it also uses the same ReactInstanceMap. Note that this is the Surface so it shouldn't have been rendered by ReactART.

sebmarkbage avatar Oct 08 '15 21:10 sebmarkbage