react中使用mobx
npm i mobx mobx-react -S
import { Provider } from "mobx-react";
import Mobx from './components/mobx/index';
import mo from './mobx/index'
render(
<Provider mo={mo}>
<Mobx />
</Provider>
,
document.getElementById("content")
);
import { observable } from 'mobx';
class Mobx {
@observable num = 1;
}
import React, { Component } from 'react';
import { observer, inject } from 'mobx-react';
@inject('mo')
@observer
class Mobx extends Component {
render() {
return (
<div>
{this.props.mo.num}
</div>
);
}
}
export default Mobx;
import { observable, computed, action } from 'mobx';
class Mobx {
@observable num = 1;
@computed
get priceNum() {
return this.num + '元'
}
@action
addNum() {
this.num ++
}
}
export default new Mobx();
import React, { Component } from 'react';
import { observer, inject } from 'mobx-react';
@inject('mo')
@observer
class Mobx extends Component {
addNum = () => {
this.props.mo.addNum();
}
render() {
return (
<div>
{this.props.mo.num}
{this.props.mo.priceNum}
<div onClick={this.addNum}>addnum</div>
</div>
);
}
}
export default Mobx;
import { observable, computed, action } from 'mobx';
class Mobx {
@observable name = 'wangzhi';
}
export default new Mobx();
import mo from "./index";
import item from './item';
const store = {
mo,
item,
}
export default store;
import store from './mobx/store';
render(
<Provider {...store}>
<Mobx />
</Provider>
,
document.getElementById("content")
);
import React, { Component } from 'react';
import { observer, inject } from 'mobx-react';
@inject('mo', 'item')
@observer
class Mobx extends Component {
addNum = () => {
this.props.mo.addNum();
}
render() {
return (
<div>
{this.props.item.name}
{this.props.mo.num}
{this.props.mo.priceNum}
<div onClick={this.addNum}>addnum</div>
</div>
);
}
}
export default Mobx;