mobx2
by li yatang
HTML
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://unpkg.com/mobx@3/lib/mobx.umd.js"></script>
<script src="https://unpkg.com/mobx-react@4"></script>
<script src="https://unpkg.com/mobx-react-devtools@4"></script>
<body>
<div id="appContainer">
</div>
</body>
Babel + JSX
const {observable, computed, autorun} = mobx;
const {observer} = mobxReact;
const {Component} = React;
class Demo {
@observable name = '12323';
}
const demo = new Demo();
let renderTime = 0;
autorun(() => {
console.log('demo name:', demo.name)
});
@observer
class DemoView extends Component {
render() {
return <div>
{demo.name}
<div>render time {renderTime ++}</div>
</div>
}
}
setTimeout(() => {
demo.name = 'lalla';
}, 2000);
ReactDOM.render(<DemoView/>, document.getElementById('appContainer'));