Stanislav Ivanov
Simple, scalable state management
defines observable
observable(value)
@observable classProperty = value
value
could be js primitive, reference, plain object, class instance, array and map
tracks observable
autorun(function)
@computed get propertyName() {
// return value based on other observables
}
import { observable } from 'mobx';
class Store {
@observable name = '';
}
const store = new Store();
import { observer } from 'mobx-react';
@observer
class View extends React.Component {
render() {
return <div>{store.name}</div>
}
}
import { observer } from 'mobx-react';
const View = observer(() => <div>{store.name}</div>)
@action method() {
// change observable state
}
@action.bound method() {
// binds method (useful in react components)
}
Use this jsbin as starting point
http://jsbin.com/yibeqox/edit?js,output