state managment
npm install reststatestate managment for react apps
``npm`
npm i reststate --save
`javascript`
import { init, state } from "reststate";
...
init({
name: "hello"
});
...
state.hello="Hello world"
...
console.log(state.hello)
`javascript`
/**
* initial new state just for example
* this is a stack with maximum length 4
* and return any time last item of stack
*/
inits([
{
name: "state1",
defaultValue: 0
},
{
name: "state2",
defaultValue: {}
}
]);
`javascript
import connect from "jetstate/connect";
class app extends React.Component {
stateChange = () => {
console.log("ok");
this.forceUpdate();
};
render() {
return (
title={"add"}
onPress={() => {
state.state1 += 1;
}}
/>
);
}
}
export default connect(
app,
["state1"]
);
//refresh component any time state changed
`
`javascript
import connectInline from "jetstate/connectInline";
class app extends React.Component {
constructor(props) {
super(props);
this.unsubscribe = connectInline(this, [
{ name: "state1", callback: this.stateChange },
"state2"
]);
}
stateChange = () => {
console.log("ok");
this.forceUpdate();
};
render() {
return (
title={"add"}
onPress={() => {
state.state1 += 1;
}}
/>
);
}
componentsWillUnmount() {
this.unsubscribe();
}
}
export default app;
//runs stateChange when state update recommended when you dont want render component
`
`javascript`
import { reset, defaultValue } from "reststate";
/**
* you can get defualt value
*/
console.log(defaultValue.state1)
/**
* reset state to defualt value
*/
reset("state1");
`javascript`
import { set } from "reststate";
/**
* set few state value
*/
set({ state1: "change value", state2: "change value too" });
`javascript`
import { forceUpdate } from "reststate";
/**
* update or run all connected to this state
*/
forceUpdate("state2");
`javascript``
import clone from "reststate/clone";
/**
* copy variable1 to variable2
* recommended for Object and array or other type
*/
var variable2 = clone(variable1);