91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

react組件通訊的方法

發布時間:2020-07-28 16:11:04 來源:億速云 閱讀:179 作者:小豬 欄目:web開發

這篇文章主要講解了react組件通訊的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

1、父組件向子組件傳值

父組件向子組件傳值一般采用props屬性傳遞

父組件:

import React from 'react'
import Child from './Child'

const dataList = [
 { id: '001', value: '張三' },
 { id: '002', value: '李四' }
]

const Parent = props => {
 return (
  <ul>
   <Child dataList={dataList}></Child>
  </ul>
 )
}

export default Parent

子組件:

import React from 'react'

const Child = props => {
 return (
  <React.Fragment>
   {
    props.dataList.map(item => <li key={item.id}>{item.value}</li>)
   }
  </React.Fragment>
 )
}

export default Child

react組件通訊的方法

2、子組件向父組件傳值

子組件調用父組件傳過來的回調函數來更改父組件的state

父組件

import React, { useState } from 'react'
import Child from './Child'

const Parent = props => {
 const [count, setCount] = useState(0)

 return (
  <Child count={count} setCount={setCount}></Child>
 )
}

export default Parent

子組件

import React from 'react'

const Child = props => {
 return (
  <React.Fragment>
   <button onClick={() => {props.setCount(props.count-1)}}>-</button>
   <span>{props.count}</span>
   <button onClick={() => {props.setCount(props.count+1)}}>+</button>
  </React.Fragment>
 )
}

export default Child

react組件通訊的方法

3、跨級組件傳值(祖孫組件)

context是一個全局變量,像是一個大容器,在任何地方都可以訪問到,我們可以把要通信的信息放在context上,然后在其他組件中可以隨意取到;
但是React官方不建議使用大量context,盡管他可以減少逐層傳遞,但是當組件結構復雜的時候,我們并不知道context是從哪里傳過來的;而且context是一個全局變量,全局變量正是導致應用走向混亂的罪魁禍首.

父組件

import React, { useState } from 'react'
import Child from './Child'

export const MyContext = React.createContext('hello')

const Parent = props => {
 return (
  <MyContext.Provider value="world">
   <Child />
  </MyContext.Provider>
 )
}

export default Parent

子組件

import React from 'react'
import Son from './Son'

const Child = props => {
 return (
  <Son />
 )
}

export default Child

孫組件

import React from 'react'
import { MyContext } from './Parent'

export default class Son extends React.Component {
 render() {
  return (
   <MyContext.Consumer>
    {
     context => <div>{context}</div>
    }
   </MyContext.Consumer>
  )
 }
}

react組件通訊的方法

看完上述內容,是不是對react組件通訊的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐县| 虎林市| 吉水县| 延长县| 礼泉县| 宜州市| 昭通市| 大同市| 甘泉县| 青阳县| 弋阳县| 东平县| 商丘市| 斗六市| 阿城市| 三门峡市| 镇安县| 花莲市| 大庆市| 象山县| 肥西县| 乌恰县| 南木林县| 岗巴县| 泸定县| 长乐市| 焉耆| 澜沧| 彭州市| 新干县| 阿拉善左旗| 长白| 天台县| 错那县| 嘉祥县| 灵武市| 江都市| 都兰县| 万荣县| 汤原县| 嵊泗县|