在react中使用redux例衍,react-redux

關(guān)于redux是什么降宅,可以看看官方的解釋,下面是使用步驟

首先是安裝? redux挎扰,react-redux

npm install?redux ? ? react-redux

在項(xiàng)目中使用:

1.創(chuàng)建store文件夾翠订,在store文件夾下創(chuàng)建index.js文件,即redux倉(cāng)庫(kù)(完整代碼)

import?{createStore}?from?'redux'

import?reducer?from?'./reducer' ? ?? //倉(cāng)庫(kù)管理員

const?store?=?createStore(

????reducer,

????window.__REDUX_DEVTOOLS_EXTENSION__?&&?window.__REDUX_DEVTOOLS_EXTENSION__())

export?default?store


2.再在store文件夾下面創(chuàng)建倉(cāng)庫(kù)管理員reducer.js

const?defaultState?=?{

//倉(cāng)庫(kù)里的數(shù)據(jù)

?refreshToken:null,

????token:'',

????inputValue:?'改變的輸入內(nèi)容',

????user:{userName:'root',password:'root',location:'西安'}


}

export?default?(state?=?defaultState,action)=>{

????//reducer里只能接受state,不能改變state

? ? //type是事件action的類型遵倦,意思是尽超,當(dāng)類型等于‘此值時(shí)’,把倉(cāng)庫(kù)的值轉(zhuǎn)換成json類型賦值給新的對(duì)象梧躺,改變新的對(duì)象里需要改變的值似谁,再賦值給倉(cāng)庫(kù),其中action.value是頁(yè)面?zhèn)鞯絺}(cāng)庫(kù)的值掠哥,下文會(huì)提到

????if(action.type?===?'getUserName'){

????????let?newState?=?JSON.parse(JSON.stringify(state))

????????newState.user.userName?=?action.value

????????return?newState

????}


????if(action.type?===?'getPassword'){

????????let?newState?=?JSON.parse(JSON.stringify(state))

????????newState.user.password?=?action.value

????????return?newState

????}

????if(action.type?===?'tokenChage'){

????????let?newState?=?JSON.parse(JSON.stringify(state))

????????newState.token?=?action.value

????????console.log("token="+newState.token)

????????return?newState

????}

????return?state

}


3.在頁(yè)面中的使用

首先在全局的index.js引入?import?{Provider}?from?'react-redux'

const?App?=?(

??<Provider?store={store}> ?? //?Provider?---在這里巩踏,相當(dāng)于提供器,提供倉(cāng)庫(kù)的 store的數(shù)據(jù)续搀,

????<AppRouter?/> ? ? ? ? ? ? ? ? //這是我自己寫的路由塞琼,通過(guò)provider,把倉(cāng)庫(kù)數(shù)據(jù)傳給了路由里的組件

??</Provider>

)

因?yàn)樵谏厦嫖乙呀?jīng)把值傳給了子組件禁舷,所有我在子組件中使用父組件的數(shù)據(jù)用this.props

在渲染頁(yè)面中使用的話彪杉,可以在render(){ let? {userNameChanger} = this.props

return(

<div>

<Input

????????????????????????????????placeholder={"請(qǐng)輸入用戶名"}

????????????????????????????????style={{?width:?'250px'?}}

????????????????????????????????onChange={userNameChange}

????????????????????????????????defaultValue={this.state.userCode}

????????????????????????????/>

</div>

}

//將state轉(zhuǎn)換成props

const?stateToProps?=?(state)?=>?{

????return?{

????????user:?state.user

????}

}

//連接redux數(shù)據(jù)庫(kù),通過(guò)type值改變數(shù)據(jù)庫(kù)數(shù)據(jù)

const?dispatchToProps?=?(dispatch)?=>?{

????return?{

????????userNameChange(e)?{

????????????let?action?=?{

????????????????type:?'getUserName',

????????????????value:?e.target.value

????????????}

????????????dispatch(action)

????????},

????????passwordChange(e)?{

????????????let?action?=?{

????????????????type:?'getPassword',

????????????????value:?e.target.value

????????????}

????????????dispatch(action)

????????},

????????tokenChage(){

????????????let?action?=?{

????????????????type:?'tokenChage',

????????????????value:?token

????????????}

????????????dispatch(action)

????????}

????}

}


export?default?connect(stateToProps,?dispatchToProps)(Login)


最后到處組件的時(shí)候需要用連接器? connect? 連接頁(yè)面和倉(cāng)庫(kù)?

import?{?connect?}?from?'react-redux'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末榛了,一起剝皮案震驚了整個(gè)濱河市在讶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霜大,老刑警劉巖构哺,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異战坤,居然都是意外死亡曙强,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門途茫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碟嘴,“玉大人,你說(shuō)我怎么就攤上這事囊卜∧壬龋” “怎么了错沃?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)雀瓢。 經(jīng)常有香客問我枢析,道長(zhǎng),這世上最難降的妖魔是什么刃麸? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任醒叁,我火速辦了婚禮,結(jié)果婚禮上泊业,老公的妹妹穿的比我還像新娘把沼。我一直安慰自己,他們只是感情好吁伺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布饮睬。 她就那樣靜靜地躺著,像睡著了一般箱蝠。 火紅的嫁衣襯著肌膚如雪续捂。 梳的紋絲不亂的頭發(fā)上垦垂,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天宦搬,我揣著相機(jī)與錄音,去河邊找鬼劫拗。 笑死间校,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的页慷。 我是一名探鬼主播憔足,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酒繁!你這毒婦竟也來(lái)了滓彰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤州袒,失蹤者是張志新(化名)和其女友劉穎揭绑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郎哭,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡他匪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夸研。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邦蜜。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亥至,靈堂內(nèi)的尸體忽然破棺而出悼沈,到底是詐尸還是另有隱情贱迟,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布絮供,位于F島的核電站关筒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杯缺。R本人自食惡果不足惜蒸播,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萍肆。 院中可真熱鬧袍榆,春花似錦、人聲如沸塘揣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亲铡。三九已至才写,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奖蔓,已是汗流浹背赞草。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吆鹤,地道東北人厨疙。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疑务,于是被迫代替她去往敵國(guó)和親沾凄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355