最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解react組件通訊方式(多種)

 更新時(shí)間:2020年05月06日 09:26:35   作者:ToSmile  
這篇文章主要介紹了詳解react組件通訊方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

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

2、子組件向父組件傳值

子組件調(diào)用父組件傳過(guò)來(lái)的回調(diào)函數(shù)來(lái)更改父組件的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

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

context是一個(gè)全局變量,像是一個(gè)大容器,在任何地方都可以訪問(wèn)到,我們可以把要通信的信息放在context上,然后在其他組件中可以隨意取到;
但是React官方不建議使用大量context,盡管他可以減少逐層傳遞,但是當(dāng)組件結(jié)構(gòu)復(fù)雜的時(shí)候,我們并不知道context是從哪里傳過(guò)來(lái)的;而且context是一個(gè)全局變量,全局變量正是導(dǎo)致應(yīng)用走向混亂的罪魁禍?zhǔn)?

父組件

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>
  )
 }
}

參考:
https://blog.csdn.net/xingfuzhijianxia/article/details/86151243
https://www.cnblogs.com/qinney1109/p/11202085.html

到此這篇關(guān)于詳解react組件通訊方式的文章就介紹到這了,更多相關(guān)react組件通訊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React運(yùn)行機(jī)制超詳細(xì)講解

    React運(yùn)行機(jī)制超詳細(xì)講解

    React 作為當(dāng)下最為流行的前端開(kāi)發(fā)框架之一,使用它可以快速構(gòu)建大型 Web 應(yīng)用,加上其出色的性能表現(xiàn),使得眾多互聯(lián)網(wǎng)公司對(duì)它格外地青睞,這篇文章主要介紹了React運(yùn)行機(jī)制
    2022-11-11
  • React手寫(xiě)一個(gè)手風(fēng)琴組件示例

    React手寫(xiě)一個(gè)手風(fēng)琴組件示例

    這篇文章主要為大家介紹了React手寫(xiě)一個(gè)手風(fēng)琴組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 圖文示例講解useState與useReducer性能區(qū)別

    圖文示例講解useState與useReducer性能區(qū)別

    這篇文章主要為大家介紹了useState與useReducer性能區(qū)別圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • react用Redux中央倉(cāng)庫(kù)實(shí)現(xiàn)一個(gè)todolist

    react用Redux中央倉(cāng)庫(kù)實(shí)現(xiàn)一個(gè)todolist

    這篇文章主要為大家詳細(xì)介紹了react用Redux中央倉(cāng)庫(kù)實(shí)現(xiàn)一個(gè)todolist,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • React class和function的區(qū)別小結(jié)

    React class和function的區(qū)別小結(jié)

    Class組件和Function組件是React中創(chuàng)建組件的兩種主要方式,本文主要介紹了React class和function的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Ant Design中使用css切換的問(wèn)題及解決

    Ant Design中使用css切換的問(wèn)題及解決

    這篇文章主要介紹了Ant Design中使用css切換的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React/Redux應(yīng)用使用Async/Await的方法

    React/Redux應(yīng)用使用Async/Await的方法

    本篇文章主要介紹了React/Redux應(yīng)用使用Async/Await的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • React使用refs操作DOM方法詳解

    React使用refs操作DOM方法詳解

    React核心就在于虛擬DOM,也就是在React中不總是直接操作頁(yè)面真實(shí)的DOM元素,并且結(jié)合Diffing算法,可以做到最小化頁(yè)面重繪,有些時(shí)候不可避免的我們需要一種方法可以操作我們定義的元素標(biāo)簽,并作出對(duì)應(yīng)的修改。在React中提供了一種訪問(wèn)DOM節(jié)點(diǎn)的方式,也就是這里的refs
    2022-11-11
  • React Hooks中模擬Vue生命周期函數(shù)的指南

    React Hooks中模擬Vue生命周期函數(shù)的指南

    React Hooks 提供了一種在函數(shù)組件中使用狀態(tài)和其他 React 特性的方式,而不需要編寫(xiě)類(lèi)組件,Vue 的生命周期函數(shù)和 React Hooks 之間有一定的對(duì)應(yīng)關(guān)系,本文給大家介紹了React Hooks中模擬Vue生命周期函數(shù)的指南,需要的朋友可以參考下
    2024-10-10
  • 如何去除富文本中的html標(biāo)簽及vue、react、微信小程序中的過(guò)濾器

    如何去除富文本中的html標(biāo)簽及vue、react、微信小程序中的過(guò)濾器

    這篇文章主要介紹了如何去除富文本中的html標(biāo)簽及vue、react、微信小程序中的過(guò)濾器,在vue及react中經(jīng)常會(huì)遇到,今天通過(guò)實(shí)例代碼給大家講解,需要的朋友可以參考下
    2018-11-11

最新評(píng)論

定安县| 图片| 金塔县| 镇江市| 鸡西市| 高安市| 古交市| 托克托县| 桐乡市| 湖南省| 绵竹市| 五华县| 修水县| 涡阳县| 霍城县| 通江县| 乌兰县| 苍梧县| 闸北区| 紫阳县| 绥芬河市| 隆德县| 文成县| 临猗县| 长兴县| 阳春市| 芮城县| 崇义县| 赣州市| 中西区| 涞水县| 调兵山市| 浠水县| 阜阳市| 郎溪县| 宝应县| 察隅县| 郁南县| 南昌县| 财经| 东源县|