成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

smallStone / 2774人閱讀

摘要:上篇文章寫到了實(shí)現(xiàn)組件數(shù)據(jù)共享的方法,但是在中,作者提供了一個(gè)更優(yōu)雅簡(jiǎn)便的模塊實(shí)現(xiàn)組件之間數(shù)據(jù)共享。那就是利用利用實(shí)現(xiàn)組件數(shù)據(jù)之間數(shù)據(jù)共享安裝從導(dǎo)入組件將賦予的屬性將根組件用包裹起來(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(

  
,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.在根組件引用子組件的位置用 將store數(shù)據(jù)傳入子組件.

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

先將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 (
        
姓名: 密碼:
) } }

因?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ù)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82974.html

相關(guān)文章

  • 詳解react、redux、react-redux之間的關(guān)系

    摘要:或者兄弟組件之間想要共享某些數(shù)據(jù),也不是很方便傳遞獲取等。后面要講到的就是通過(guò)讓各個(gè)子組件拿到中的數(shù)據(jù)的。所以,確實(shí)和沒有什么本質(zhì)關(guān)系,可以結(jié)合其他庫(kù)正常使用。 本文介紹了react、redux、react-redux之間的關(guān)系,分享給大家,也給自己留個(gè)筆記,具體如下: React 一些小型項(xiàng)目,只使用 React 完全夠用了,數(shù)據(jù)管理使用props、state即可,那什么時(shí)候需要引入...

    xioqua 評(píng)論0 收藏0
  • 實(shí)現(xiàn)React-redux的基本功能

    摘要:要實(shí)現(xiàn)先搞清楚的就是這么一個(gè)東西,某個(gè)組件只要往自己的里面放了某些狀態(tài),這個(gè)組件之下的所有子組件都直接訪問(wèn)這個(gè)狀態(tài)而不需要通過(guò)中間組件的傳遞。 1.要實(shí)現(xiàn)redux,先搞清楚context React.js 的 context 就是這么一個(gè)東西,某個(gè)組件只要往自己的 context 里面放了某些狀態(tài),這個(gè)組件之下的所有子組件都直接訪問(wèn)這個(gè)狀態(tài)而不需要通過(guò)中間組件的傳遞。一個(gè)組件的 co...

    dmlllll 評(píng)論0 收藏0
  • 實(shí)現(xiàn)React-redux的基本功能

    摘要:要實(shí)現(xiàn)先搞清楚的就是這么一個(gè)東西,某個(gè)組件只要往自己的里面放了某些狀態(tài),這個(gè)組件之下的所有子組件都直接訪問(wèn)這個(gè)狀態(tài)而不需要通過(guò)中間組件的傳遞。 1.要實(shí)現(xiàn)redux,先搞清楚context React.js 的 context 就是這么一個(gè)東西,某個(gè)組件只要往自己的 context 里面放了某些狀態(tài),這個(gè)組件之下的所有子組件都直接訪問(wèn)這個(gè)狀態(tài)而不需要通過(guò)中間組件的傳遞。一個(gè)組件的 co...

    dreamans 評(píng)論0 收藏0
  • React Hooks 越來(lái)越火了,它會(huì)取代傳統(tǒng)的 Redux 嗎?

    摘要:前言自推出之后,收到了不少追捧,很多問(wèn)題也隨之而來(lái)。在出現(xiàn)之前,可以使用保存狀態(tài)和更新狀態(tài)用以應(yīng)對(duì)這種情況。為了在這個(gè)用例上追趕的腳步,的需要提供副作用隔離功能。提供了一個(gè),可以用它接入你的風(fēng)格的。 showImg(https://segmentfault.com/img/remote/1460000019913697?w=1280&h=853); 前言 React Hooks 自推出...

    Scliang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<