redux使用react還在測(cè)試階段的context脫離傳統(tǒng)事件流,只為了能跨組建獲取數(shù)據(jù),看react-redux的過(guò)程里放一首洋蔥更貼切,實(shí)在搞不懂碟刺,這一坨屎一樣的一層又一層的嵌套只為能得到props,累不累薯酝,如果redux初始使用事件驅(qū)動(dòng)的方式還可圈可點(diǎn)半沽,那官網(wǎng)去推薦的react-redux就是個(gè)狗皮膏藥,左一層右一層吴菠,弄個(gè)高階函數(shù)作為返回實(shí)際組建的方式真叫蹩腳者填。
難道每一個(gè)組件都要如此嵌套,如果這樣的話實(shí)在沒(méi)有繼續(xù)的必要了做葵,直接使用redux事件驅(qū)動(dòng)就好占哟。
對(duì)于react的使用上我一直飽受詬病,說(shuō)不符合標(biāo)準(zhǔn)云云酿矢,但是如果標(biāo)準(zhǔn)比較啰嗦又何必去茍同榨乎,所謂合作的人讀不懂不是作為代碼就應(yīng)該“臟”下去的借口,是沒(méi)解釋清楚瘫筐。
就比如說(shuō)蜜暑,因?yàn)閞eact每次setStage就會(huì)刷新視圖,而官方指導(dǎo)思想是把所有視圖相關(guān)數(shù)據(jù)放到stage上策肝,但是作為多表單的就不一定適用肛捍,把部分?jǐn)?shù)據(jù)在本地建立私有從而有意識(shí)的主動(dòng)刷新視圖就是一個(gè)非常不錯(cuò)的解決辦法,我想很多人跟我想法差不太多驳糯,何必循規(guī)蹈矩,符合當(dāng)前需求的編碼方式才是最好的氢橙,誠(chéng)如setStage是異步的會(huì)造成取數(shù)時(shí)機(jī)過(guò)早酝枢,那么直接使用async await就好,解決比茍合更重要悍手。
- 導(dǎo)入react-redux 帘睦,store就是redux所需具體使用參考redux手冊(cè)
import { Provider } from 'react-redux'
<Provider store={store}>
<Router ref="router" history={hashHistory}>
<Route path='/' component={Index}>
<IndexRoute component={MainPage}></IndexRoute>
</Route>
</Router>
</Provider>
- 洋蔥皮,用來(lái)使用connect 高階函數(shù)返回實(shí)際顯示組件
import { connect } from 'react-redux'
import 你的組建 from '你的組建地址'
//react-reudx返回stage方法坦康,套路
const mapStateToProps = (state) => {
return {
stage
}
};
//react-redux發(fā)布事件的dispatch方法竣付,套路
const mapDispatchToProps = (dispatch, ownProps) => {
};
//返回connect洋蔥皮
export default connect(mapStateToProps, mapDispatchToProps)(你的組建)
- 在-2-中即自己的組件使用
const { redux中你自己數(shù)據(jù)} = this.props;