react/packages/react-reconciler
Sebastian Markbåge 725c054d4d
Refactor findHostInstance and findNodeHandle (#12575)
* Move findNodeHandle into the renderers and use instantiation

This is just like ReactDOM does it. This also lets us get rid of injection
for findNodeHandle. Instead I move NativeMethodsMixin and ReactNativeComponent
to use instantiation.

* Refactor findHostInstance

The reconciler shouldn't expose the Fiber data structure. We should pass
the component instance to the reconciler, since the reconciler is the
thing that is supposed to be instancemap aware.

* Fix devtools injection
2018-04-09 20:15:10 -07:00
..
npm Expose persistent reconciler to custom renderers (#12156) 2018-02-05 16:56:21 +00:00
src Refactor findHostInstance and findNodeHandle (#12575) 2018-04-09 20:15:10 -07:00
README.md Fix renderer example links in README of `react-reconciler` (#11312) 2017-10-21 15:13:54 +01:00
index.js react-reconciler: convert vars into let/const (#11729) 2017-11-30 23:59:05 +00:00
package.json facebook.github.io/react -> reactjs.org (#12545) 2018-04-04 21:20:41 +01:00
persistent.js Expose persistent reconciler to custom renderers (#12156) 2018-02-05 16:56:21 +00:00
reflection.js Move ReactFiberTreeReflection to react-reconciler/reflection (#11683) 2017-11-28 16:57:22 +00:00

README.md

react-reconciler

This is an experimental package for creating custom React renderers.

Its API is not as stable as that of React, React Native, or React DOM, and does not follow the common versioning scheme.

Use it at your own risk.

API

var Reconciler = require('react-reconciler');

var ReconcilerConfig = {
  // You'll need to implement some methods here.
  // See below for more information and examples.
};

var MyRenderer = Reconciler(ReconcilerConfig);

var RendererPublicAPI = {
  render(element, container, callback) {
    // Call MyRenderer.updateContainer() to schedule changes on the roots.
    // See ReactDOM, React Native, or React ART for practical examples.
  }
};

module.exports = RendererPublicAPI;

Practical Examples

If these links break please file an issue and well fix them. They intentionally link to the latest versions since the API is still evolving.

This third-party tutorial is relatively up-to-date and may be helpful.