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

