, . :
@observer , render, .
, @observable, render, prop :
class Store{
@observable data = {
nestedData: {
// changes to `deepData` would theoretically re-render any observer
deepData: 'my_data'
}
}
}
, ,
!
observable, ...
, @inject, ( props) , Provider.
:
@inject('title')
class MyComponent extends React.Component {
render() {
return (<div>{this.props.title}</div>);
}
}
const Container = () => (
<Provider title="This value is passed as a prop using `inject`">
<MyComponent />
</Provider>
);
, .
!
inject , prop .
shouldComponentUpdate() props - observer be , shouldComponentUpdate.
-, , .
... , .
:
class Store{
@observable data = {
nestedData: {}
};
constructor() {
this.data.nestedData.deepData = 'my_data';
}
}
... deepData (.. ), , data . .
:
class Person {
@observable name = 'John Doe';
}
class Store{
@observable data = null;
constructor() {
this.data = new Person();
}
}
, Store ( Store.data, Person.