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

詳解React?hooks組件通信方法

 更新時間:2022年07月26日 14:08:33   作者:曲鳥  
這篇文章主要介紹了React?hooks組件通信,在開發(fā)中組件通信是React中的一個重要的知識點,本文通過實例代碼給大家講解react hooks中常用的父子、跨組件通信的方法,需要的朋友可以參考下

一、前言

組件通信是React中的一個重要的知識點,下面列舉一下 react hooks中常用的父子、跨組件通信的方法

二、父子組件通信

1)父組件傳值給子組件

子組件代碼:

//子組件
const Child = ({ param1, param2 }) => {
  return <>父組件傳遞的參數(shù):{param1},{param2}</>
}

param1、param2 為子組件接收父組件的傳參,父組件代碼如下:

父組件代碼

//父組件
const Parent = () => {
  return <Child //子組件
    params1="1"
    params2="2"
  />
}

運行效果

2)子組件傳值給父組件

子傳父嚴格來講還是父傳子,父組件傳遞給子組件ref,子組件將想要暴露給父組件的值放在上面,然后父組件就可以使用其值:

首先需要導入對應的模塊包useImperativeHandle、useRef,forwardRef

import React, { useRef, useImperativeHandle, useEffect, forwardRef } from 'react';

父組件代碼

//父組件

const Parent = () => {//父組件
  const ref = useRef(); //ref
  useEffect(() => {
    console.log(ref)
  }, [])
  return (
    <Child //子組件
      ref={ref} //將ref傳遞給子組件
    />)
}

子組件代碼

//子組件
const Child = forwardRef(({ },ref) => {
  useImperativeHandle(ref, () => ({
    data: '我是子組件'
  }));
  return <>我是子組件</>
})

運行后控制臺輸出

{
    "current": {
        "data": "我是子組件"
    }
}

3)跨組件傳值(父傳孫子組件)

跨組件傳值我們頁可以使用最開始介紹的父傳子的方法,一層層的嵌套傳遞,例如:

const Parent = () => {
  return <Child1 //子組件
    param1="1"
    param2="2"
  />
}
//子組件
const Child1 = ({ param1, param2 }) => {
  return <Child2 param1={param1} param2={param2} />
}
//子子組件
const Child2 = ({ param1, param2 }) => {
  return <>父組件傳遞的參數(shù):{param1},{param2}</>
}

但如果有更多層嵌套時,一層層的傳遞會顯得很冗余和麻煩,所以我們可以使用context來解決這個問題。

在項目目錄創(chuàng)建一個context.js文件用于創(chuàng)建我們的context,代碼如下:

import { createContext } from 'react'
const myContext = createContext(null)
export default myContext

然后在我們組件文件中引入我們定義的myContext,并引入react對應包:

import React, { useContext } from 'react';
import myContext from './context'

父組件代碼

const Parent = () => {
  //使用Provider傳遞值
  return <myContext.Provider value={{ param1: "1", param2: "2" }}>
    <Child1 />
  </myContext.Provider>
}

子組件和子子組件代碼

//子組件無需改動
const Child1 = () => {
  return <Child2 />
}
//子子組件
const Child2 = () => {
  //通過useContext獲取父組件的值
  const { param1, param2 } = useContext(myContext)  
  return <>父組件傳遞的參數(shù):{param1},{param2}</>
}

運行效果

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

相關文章

  • react中使用usestate踩坑及解決

    react中使用usestate踩坑及解決

    這篇文章主要介紹了react中使用usestate踩坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • react中value與defaultValue的區(qū)別及說明

    react中value與defaultValue的區(qū)別及說明

    這篇文章主要介紹了react中value與defaultValue的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 聊聊React onClick 傳遞參數(shù)的問題

    聊聊React onClick 傳遞參數(shù)的問題

    很多朋友向小編反映一個問題關于React onClick 傳遞參數(shù)的問題,當點擊刪除按鈕需要執(zhí)行刪除操作,針對這個問題該如何處理呢?下面小編給大家?guī)砹薘eact onClick 傳遞參數(shù)的問題,感興趣的朋友一起看看吧
    2021-10-10
  • 淺談React高階組件

    淺談React高階組件

    這篇文章主要介紹了淺談React高階組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • React 合成事件的實現(xiàn)

    React 合成事件的實現(xiàn)

    本文主要介紹了React 合成事件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-02-02
  • 使用React實現(xiàn)輪播效果組件示例代碼

    使用React實現(xiàn)輪播效果組件示例代碼

    React剛出來不久,組件還比較少,不像jquery那樣已經(jīng)有很多現(xiàn)成的插件了,于是自己寫了一個基于React的輪播效果組件,現(xiàn)在分享給大家,有需要的可以參考借鑒。
    2016-09-09
  • React DOM-diff 節(jié)點源碼解析

    React DOM-diff 節(jié)點源碼解析

    這篇文章主要為大家介紹了React DOM-diff節(jié)點源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • React Native中ScrollView組件輪播圖與ListView渲染列表組件用法實例分析

    React Native中ScrollView組件輪播圖與ListView渲染列表組件用法實例分析

    這篇文章主要介紹了React Native中ScrollView組件輪播圖與ListView渲染列表組件用法,結合實例形式詳細分析了ScrollView組件輪播圖與ListView渲染列表組件具體功能、使用方法與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • create-react-app如何降低react的版本

    create-react-app如何降低react的版本

    這篇文章主要介紹了create-react-app降低react的版本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • React+Ant Design前端實現(xiàn)讀取與導出Excel文件

    React+Ant Design前端實現(xiàn)讀取與導出Excel文件

    在實際業(yè)務場景中,我們經(jīng)常需要處理 Excel 文件的導入導出,本文將以 React + Ant Design 項目為例,演示如何通過 xlsx 庫實現(xiàn)以下功能,希望對大家有所幫助
    2025-08-08

最新評論

景泰县| 安丘市| 晋中市| 静安区| 宜良县| 惠水县| 佛山市| 巴青县| 枣阳市| 汾西县| 靖州| 广汉市| 沂水县| 仁化县| 义乌市| 上思县| 大方县| 磐安县| 芦山县| 克什克腾旗| 巴中市| 全南县| 三原县| 响水县| 德格县| 太谷县| 嵊州市| 涞水县| 文成县| 衡阳县| 扎鲁特旗| 隆回县| 桂林市| 金湖县| 婺源县| 苍山县| 佛山市| 固始县| 咸阳市| 泾源县| 开鲁县|