React組件間通訊傳值實現(xiàn)詳解
組件的props:
1.組件是封閉的,要接收外部數(shù)據(jù)應(yīng)該通過props來實現(xiàn)。
2.props的作用,接收傳遞給組件的數(shù)據(jù)。
3.傳遞數(shù)據(jù):給組件標簽添加屬性
4.接收數(shù)據(jù):函數(shù)組件通過參數(shù)props接收數(shù)據(jù),類組件通過this.props接收數(shù)據(jù)。
特點:
1.可以給組件傳遞任意類型的數(shù)據(jù)。
2.props是只讀對象,只能讀取屬性的值,不能修改對象。
3.使用類組件時,如果寫了構(gòu)造函數(shù),應(yīng)該將props傳遞給super(),否則無法在構(gòu)造函數(shù)中獲取props。
父->子傳值
import React, { Component } from 'react' import ComSmall from './ComSmall' export default class ComBig extends Component { constructor(){ super() this.state={ info:"天冷了要加衣" } } render() { return ( <div>我是父組件 {/* 注冊子組件 ,通過msg傳遞給子組件*/} <ComSmall msg={this.state.info}></ComSmall> </div> ) } }
import React, { Component } from 'react' export default class ComSmall extends Component { constructor(props){ // 此處不傳props super(props) this.state={ } // console.log(this.props);此處打印的是undefined,傳遞后打印的是數(shù)據(jù) } render() { return ( <div>我是子組件 {/* 接收父組件傳值 */} {this.props.msg} </div> ) } }
子->父傳值
利用回調(diào)函數(shù),父組件提供回調(diào),子組件調(diào)用,將要傳遞的數(shù)據(jù)作為回調(diào)函數(shù)的參數(shù)。
import React, { Component } from 'react' export default class ComSmall extends Component { constructor(){ super() this.state={ msg:"給你買了一部手機" } } sendMsg(){ // 子組件調(diào)用父組件傳遞過來的回調(diào)函數(shù) this.props.getMsg(this.state.msg) } render() { return ( <div>我是子組件 <button onClick={()=>this.sendMsg()}>給父組件傳值</button> </div> ) } }
import React, { Component } from 'react' import ComSmall from './ComSmall' export default class ComBig extends Component { constructor(){ super() this.state={ data:"" } } getChindMsg=(val)=>{ // console.log("獲得子組件傳過來的值:",val); this.setState({ data:val }) } render() { return ( <div>我是父組件 <p>獲得子組件傳過來的值:{this.state.data}</p> {/* 將回調(diào)函數(shù)傳遞給子組件 */} <ComSmall getMsg={this.getChindMsg}></ComSmall> </div> ) } }
到此這篇關(guān)于React組件間通訊傳值實現(xiàn)詳解的文章就介紹到這了,更多相關(guān)React組件通訊傳值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React?Fiber構(gòu)建completeWork源碼解析
這篇文章主要為大家介紹了React?Fiber構(gòu)建completeWork源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02淺談React的React.FC與React.Component的使用
本文主要介紹了React的React.FC與React.Component的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09React onClick/onChange傳參(bind綁定)問題
這篇文章主要介紹了React onClick/onChange傳參(bind綁定)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02react 項目 中使用 Dllplugin 打包優(yōu)化技巧
在用 Webpack 打包的時候,對于一些不經(jīng)常更新的第三方庫,比如 react,lodash,vue 我們希望能和自己的代碼分離開,這篇文章主要介紹了react 項目 中 使用 Dllplugin 打包優(yōu)化,需要的朋友可以參考下2023-01-01如何使用 React Router v6 在 React 中
面包屑在網(wǎng)頁開發(fā)中的角色不可忽視,它們?yōu)橛脩籼峁┝艘环N跟蹤其在網(wǎng)頁中當前位置的方法,并有助于網(wǎng)頁導(dǎo)航,本文介紹了如何使用react-router v6和bootstrap在react中實現(xiàn)面包屑,感興趣的朋友一起看看吧2024-09-09使用React實現(xiàn)一個簡單的待辦事項列表的示例代碼
這篇文章我們將詳細講解如何建立一個這樣簡單的列表,文章通過代碼示例介紹的非常詳細,對我們的學(xué)習或工作有一定的幫助,需要的朋友可以參考下2023-08-08React Native基礎(chǔ)入門之初步使用Flexbox布局
React中引入了flexbox概念,flexbox是屬于web前端領(lǐng)域CSS的一種布局方案,下面這篇文章主要給大家介紹了關(guān)于React Native基礎(chǔ)入門之初步使用Flexbox布局的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-07-07基于React-Dropzone開發(fā)上傳組件功能(實例演示)
這篇文章主要介紹了基于React-Dropzone開發(fā)上傳組件,主要講述的是在React-Flask框架上開發(fā)上傳組件的技巧,需要的朋友可以參考下2021-08-08