http://cn.mobx.js.org/refguide/observer-component.html
可觀察的局部組件狀態
就像普通類一樣,你可以通過使用 @observable
裝飾器在React組件上引入可觀察屬性。 這意味着你可以在組件中擁有功能同樣強大的本地狀態(local state),而不需要通過 React 的冗長和強制性的 setState
機制來管理。 響應式狀態會被 render
提取調用,但不會調用其它 React 的生命週期方法,除了 componentWillUpdate
和 componentDidUpdate
。 如果你需要用到其他 React 生命週期方法 ,只需使用基於 state
的常規 React API 即可。
上面的例子還可以這樣寫:
import {observer} from "mobx-react"
import {observable} from "mobx"
@observer class Timer extends React.Component {
@observable secondsPassed = 0
componentWillMount() {
setInterval(() => {
this.secondsPassed++
}, 1000)
}
render() {
return (<span>Seconds passed: { this.secondsPassed } </span> )
}
}
ReactDOM.render(<Timer />, document.body)
Copy
對於使用可觀察的局部組件狀態更多的優勢,請參見爲什麼我不再使用 setState
的三個理由。