----flux----

一、flux由四部分組成
    (1)view:視圖層
    (2)action:發出的動做,視圖層發出的動做,onClick等
    (3)dispatcher:派發器,用來接收action,進行相應的數據處理
    (4)store:數據層,用來存放狀態,一旦發生改變,就會通知視圖層
 
flux的數據流程
 
一、view層的數據想進行修改,會給dispatcher發送一個action
    經過dispatcher.dispatch來發送action
    dispatcher.dispatch({
        type:"",
        value:
    })
二、dispatcher之中接收到action,進行對比,要求store進行相應的數據更新
    import {Dispatcher} from "flux"
    const dispatcher=new Dispatcher()
    dispatcher.register((action)=>{
        switch(action.type){
            case "":
            store.事件名稱
        }
    })
三、store中進行數據處理,建立一個函數,在函數內部進行事件的監聽供view層調用,觸發的時候進行數據的改變
    handleUpdate(fn){
        this.on("update")
    }
四、在組件中調用事件監聽的方法進行修改數據
    store.handleUpdate(this.handleUpdate.bind(this))
    handleupdate(){
        this.setState(store.getState())
    }
 
store是手動建立的
 
import EventEmitter = require("events")
const store =Object.assign({},EventEmitter.prototype,{
    state:{}
    getState(){
        return this.state
    }
})
 
export default store
相關文章
相關標籤/搜索