rescope
v4.6.4
Published
Intuitive & scalable state management system based on flux architecture, stores data components & inheritable scopes
Downloads
207
Readme
ReScope
Related packages
React HOCs, decorators & tools : react-scopes ReScope HOCs, decorators & tools : rescope-spells
ReScope What ?
ReScope is a flexible, effective and easy to use state management system inspired by ReactJS methods.
What's the point ?
The set of data transformations of one or more applications can be divided into reusable data components with reactive state and result data. Just like React Components, for data. Of course, that's quickly said, in an application, the data must deal with complex dependencies, different contexts, custom data bindings, and so on.
This is where reScope comes in: RS provide a effective, flexible and familiar structure to organize and synchronize your data components. It manage theirs dependencies, theirs scopes, sequencing, persistence, active instances & much more.
This way all the data components :
- Only use 1 file for theirs initial state, actions & mutations
- Only care about theirs specialized task
- Can be easily & independently tested
- Can have different behaviors basing on theirs scope
How ?
By using independent, specialized & serializable "Data Stores" in a Flux oriented architecture.
Stores ?
ReScope stores look like "React components for data". Basically, they render determined data according theirs entry state, theirs dependencies, and theirs action.
Actions generate mutations of one or multiple stores, So each Stores can manage part of, or the entire App state's determining values, maintain intermediate, possibly asynchronous resources, and/or finals or ready-to-render data.
Scopes ?
To deal with complex architectures like multi user or complex components systems, the Scopes allow :
- normalized scopes for modules & views
- to inherit & mix other Scopes,
- automatic & chained destroy
- ...
Samples & bootstraps here
Todo ?
- Many more tests
- Should be rewritten completely using a more functional approach ( but as react context seems taking similar path & rs is made probono it will not )