本身寫的一個React事件流處理框架

這個框架是在開始學習React的時候寫的,當時主要是以爲Redux的事件流過於複雜,以及考慮到在多層的props的傳遞中的代碼複雜度的問題,嘗試着完成了這樣一個框架,經過維護一個全局的數據管理器管理storage來部分替代Redux的使用,將storage中的數據直接映射到組件的state中。具體代碼和示例能夠見個人GitHub:https://github.com/alexxyzeng/easy-react-router-4react

本框架主要解決ReactJS View層事件邏輯過多和多層組件之間父-子數據傳遞的嵌套問題

主要做用

1.經過建立數據管理器DataComm的單例,管理全局storage,實現基於ReactJS框架下任意組件之間的數據傳遞;git

2.抽出具體的處理邏輯到Action中,避免在組件中直接處理太多的事件邏輯github

使用方法react-router

1.引入自定義的basecomp.js,建立繼承自BaseComp的的自定義組件,讓它擁有BaseComp基類中定義的方法;框架

2.編寫自定義Action,並調用DataComm單例註冊該Action;學習

3.在自定義組件中調用exec(),調用指定的Action;this

4.在自定義組件中經過bindData(),將獲取到的數據綁定到組件的state中spa

主要組件方法

1.事件執行方法router

/*繼承

* 本方法實現對指定Action的調用,並傳遞參數給Action中的對應方法進行處理

* Action.actionType: 第一個參數,必選,包括指定的方法集名稱(Action)和方法名稱(actionType),以"."分隔

* arg1, arg2, ...: 傳遞給指定方法的參數,可選

*/

this.exec(Action.actionType, arg1, arg2,....) {

... ...

}

2.數據綁定方法

#####/*

* 實現全局storage中的指定數據和組件state中指定數據的綁定

* property : 要獲取的數據的名稱

* stateProperty : 組件state中要綁定的數據的名稱

#####*/

this.bindData(property, stateProperty) {

... ...

#####}

相關文章
相關標籤/搜索