react-component-tree

2.0.0-beta.14 • Public • Published

react-component-tree

Serialize and reproduce the state of an entire tree of React components.

Deprecated: React Cosmos is moving towards separating props from state inside fixtures, which means we'll no longer need a combined method for rendering with state. In the next iteration we'll extract recursive state injection & serialization from this package and dump the rest.

A few examples where this can be useful:

  • Using fixtures to load and test components in multiple supported states
  • Extracting the app state when an error occurs in the page and reproducing that exact state later on when debugging
  • "Pausing" the app state and resuming it later (nice for games)

.serialize

Generate a snapshot with the props and state of a component combined, including the state of all nested child components.

var ComponentTree = require('react-component-tree');
 
myCompany.setProps({public: true});
myCompany.setState({profitable: true});
myCompany.refs.employee54.setState({bored: false});
 
var snapshot = ComponentTree.serialize(myCompany);

The snapshot looks like this:

{
  public: true,
  state: {
    profitable: true,
    children: {
      employee54: {
        bored: false
      }
    }
  },
}

.render

Render a component and reproduce a state snapshot by recursively injecting the nested state into the component tree it generates.

var myOtherCompany = ComponentTree.render({
  component: CompanyClass,
  snapshot: snapshot,
  container: document.getElementById('content')
});
 
console.log(myOtherCompany.props.public); // returns true
console.log(myOtherCompany.state.profitable); // returns true
console.log(myOtherCompany.refs.employee54.state.bored); // returns false

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.0.0-beta.144latest

Version History

VersionDownloads (Last 7 Days)Published
2.0.0-beta.144
2.0.0-beta.130
2.0.0-beta.110
2.0.0-beta.90
2.0.0-beta.61
2.0.0-beta.50
2.0.0-beta.40
2.0.0-beta.20
1.0.10
1.0.00
1.0.0-beta.90
1.0.0-beta.80
1.0.0-beta.50
1.0.0-beta.40
1.0.0-beta.20
1.0.0-beta.00
0.4.00
0.3.11
0.3.00
0.2.40
0.2.30
0.2.20
0.2.10
0.2.00
0.1.20
0.1.10
0.1.00

Package Sidebar

Install

npm i react-component-tree

Weekly Downloads

6

Version

2.0.0-beta.14

License

MIT

Last publish

Collaborators

  • nighttrax
  • skidding