欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用react-redux實(shí)現(xiàn)react組件之間數(shù)據(jù)共享的方法

 更新時(shí)間:2018年06月08日 09:34:44   作者:Ajaxyz  
這篇文章主要介紹了用react-redux實(shí)現(xiàn)react組件之間數(shù)據(jù)共享的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

上篇文章寫到了redux實(shí)現(xiàn)組件數(shù)據(jù)共享的方法,但是在react中,redux作者提供了一個(gè)更優(yōu)雅簡(jiǎn)便的模塊實(shí)現(xiàn)react組件之間數(shù)據(jù)共享。那就是利用react-redux

利用react-redux實(shí)現(xiàn)react組件數(shù)據(jù)之間數(shù)據(jù)共享

1.安裝react-redux

$ npm i --save react-redux

2.從react-redux導(dǎo)入Prodiver組件將store賦予Provider的store屬性,

將根組件用Provider包裹起來(lái)。

import {Provider,connect} from 'react-redux'
ReactDOM.render(
<Provider store={store}>
 <Wrap/>
</Provider>,document.getElementById('example'))

這樣根組件中所有的子組件都可以獲得store中的值

3.connect二次封裝根組件

export default connect(mapStateToProps,mapDispatchToProps)(Wrap)

connect接收兩個(gè)函數(shù)作為參數(shù),一個(gè)mapStateToProps定義哪些store屬性會(huì)被映射到根組件上的屬性(把store傳入react組件),一個(gè)mapDispatchToProps定義哪些行為action可以作為根組件屬性(把數(shù)據(jù)從react組件傳入store)

3.定義這兩個(gè)映射函數(shù)

function mapStateToProps(state){
 return {
  name:state.name,
  pass:state.pass
 }
}
function mapDispatchToProps(dispatch){
 
 return {actions:bindActionCreators(actions,dispatch)
 }
}

把store中的name,pass映射到根組件的name,pass屬性。

actions是一個(gè)包含了action構(gòu)建函數(shù)的對(duì)象,用bindActionCreators把對(duì)象actions綁定到根組件actions屬性上。

4.在根組件引用子組件的位置用 <Show name={this.props.name} pass={this.props.pass}></Show>將store數(shù)據(jù)傳入子組件.

5.在子組件中調(diào)用actions中的方法來(lái)更新store中的數(shù)據(jù)

<Input actions={this.props.actions} ></Input>

先將actions作為屬性傳入子組件

子組件調(diào)用actions中的方法創(chuàng)建action

//Input組件
export default class Input extends React.Component{
sure(){
this.props.actions.add({name:this.refs.name.value,pass:this.refs.pass.value})
}
 render(){ 
  return (
    <div> 
  姓名:<input ref="name" type="text"/>
  密碼:<input ref="pass" type="text"/>
  <button onClick={this.sure.bind(this)}>登錄</button>
 </div>

  )
 }
}

因?yàn)槲覀儾捎昧薭indActionCreators函數(shù),創(chuàng)建action后會(huì)立即自動(dòng)調(diào)用store.dispatch(action)將數(shù)據(jù)更新到store.

這樣我們就利用react-redux模塊完成了react各個(gè)組件之間數(shù)據(jù)共享。

跟上篇文章一樣,實(shí)現(xiàn)了在一個(gè)組件Input中通過(guò)actions更新數(shù)據(jù)到store,然后在另一個(gè)組件Show中展示store中的數(shù)據(jù)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論