Skip to content
This repository has been archived by the owner on Oct 19, 2021. It is now read-only.

deep-storage/deep-storage

Repository files navigation

Deep Storage provides observable state for reactive applications in JavaScript.

Key features

  • Simple to use observable state management
  • Optimised for use with React
  • No global state
  • Simple way to manage shared state with or without a fully fledged flux pattern

Documentation

The Deep Storage user manual

Real World Example

See a Real World Example of deep storage react.

Demo here.

TodoMVC

See an implementation of TodoMVC that uses Deep Storage.

Installing

npm install deep-storage # or yarn add deep-storage

The gist of Deep Storage

1. Create a new Deep Storage instance and initialise its state

import { deepStorage } from 'deep-storage';

const storage = deepStorage({
    timer: 0
});

2. Create a view that responds to changes in state

import { wire } from 'deep-storage-react';

class TimerView extends React.Component {
    render() {
        return (
            <button onClick={this.onReset.bind(this)}>
                Seconds passed: {this.props.timer}
            </button>
        );
    }
    onReset () {
        this.props.resetTimer();
    }
};

const DeepTimerView = wire(TimerView, {timer: storage.deep('timer')});

ReactDOM.render((
    <DeepTimerView resetTimer={resetTimer}/>
), document.body);

3. Modify the State

function resetTimer() {
    storage.deep('timer').set(0);
}

setInterval(function tick() {
    storage.deep('timer').update(prev => prev + 1);
}, 1000);

About

Simple observable state management for reactive JavaScript applications

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published