亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年05月06日 09:26:35   作者:ToSmile  
這篇文章主要介紹了詳解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

2、子組件向父組件傳值

子組件調用父組件傳過來的回調函數(shù)來更改父組件的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、跨級組件傳值(祖孫組件)

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

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

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

相關文章

  • react-navigation之動態(tài)修改title的內容

    react-navigation之動態(tài)修改title的內容

    這篇文章主要介紹了react-navigation之動態(tài)修改title的內容,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • React組件與事件的創(chuàng)建使用教程

    React組件與事件的創(chuàng)建使用教程

    react事件綁定時。this并不會指向當前DOM元素。往往使用bind來改變this指向,今天通過本文給大家介紹React事件綁定的方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-02-02
  • ReactJS實現(xiàn)表單的單選多選和反選的示例

    ReactJS實現(xiàn)表單的單選多選和反選的示例

    本篇文章主要介紹了ReactJS實現(xiàn)表單的單選多選和反選的示例,非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • React+CSS?實現(xiàn)繪制豎狀柱狀圖

    React+CSS?實現(xiàn)繪制豎狀柱狀圖

    這篇文章主要介紹了React+CSS?實現(xiàn)繪制豎狀柱狀圖,文章圍繞主題展開詳細的內容介紹。具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • React中的生命周期和子組件

    React中的生命周期和子組件

    這篇文章主要介紹了React中的生命周期和子組件,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Webpack3+React16代碼分割的實現(xiàn)

    Webpack3+React16代碼分割的實現(xiàn)

    這篇文章主要介紹了Webpack3+React16代碼分割的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • ReactJS中使用TypeScript的方法

    ReactJS中使用TypeScript的方法

    TypeScript 實際上就是具有強類型的 JavaScript,可以對類型進行強校驗,好處是代碼閱讀起來比較清晰,代碼類型出現(xiàn)問題時,在編譯時就可以發(fā)現(xiàn),而不會在運行時由于類型的錯誤而導致報錯,這篇文章主要介紹了ReactJS中使用TypeScript的方法,需要的朋友可以參考下
    2024-04-04
  • React+Spring實現(xiàn)跨域問題的完美解決方法

    React+Spring實現(xiàn)跨域問題的完美解決方法

    這篇文章主要介紹了React+Spring實現(xiàn)跨域問題的完美解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • React學習之JSX與react事件實例分析

    React學習之JSX與react事件實例分析

    這篇文章主要介紹了React學習之JSX與react事件,結合實例形式分析了React中JSX表達式、屬性、嵌套與react事件相關使用技巧,需要的朋友可以參考下
    2020-01-01
  • React?中的?JS?報錯及容錯方案

    React?中的?JS?報錯及容錯方案

    這篇文章主要為大家介紹了React?中的?JS?報錯及容錯方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論