簡單粗暴,在mobx中取代state,改用@observable引入可觀察屬性

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 的三個理由

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章