欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React?實現(xiàn)爺孫組件間相互通信

 更新時間:2022年08月08日 14:56:05   作者:vs心動???????  
這篇文章主要介紹了React實現(xiàn)爺孫組件間相互通信,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下

前言

最近在學習React,給大家總結(jié)下跨組件通信中,爺孫組件之間怎么相互通信。簡單明了上代碼直接一把梭,不多解釋。

爺孫組件間通信

案例如下:

代碼:

//跨組件通信
import React, { Component } from 'react'
//創(chuàng)建context 給初始值
const UserMessage = React.createContext({
    nickName: 'yyy',
    level: 1
})

export default class TextSingal extends Component {
    constructor(props) {
        super(props)
        this.state = {
            nickName: 'kkk',
            level: 99,
            name: 'ppp',
            age: 9999
        }
    }
    render() {
        const { name, age } = this.state
        return (
            <div>
                <h2>爺爺組件</h2>
                <h3>name:{name}</h3>
                <h3>age:{age}</h3>
                {/* 改變數(shù)據(jù)孫組件也更新 */}
                <button onClick={() => this.handelClick()}>updated</button>
                {/* 傳入state對象和foo回調(diào)函數(shù) */}
                {/* foo函數(shù)用于孫組件和爺組件通信 */}
                <UserMessage.Provider value={{ ...this.state, foo: (name, age) => this.updateDatas(name, age) }}>
                    <Father />
                </UserMessage.Provider>

            </div>
        )
    }
    handelClick() {
        this.setState({
            nickName: '虎威神',
            level: 9999
        })
    }
    updateDatas(name, age) {
        this.setState({
            name,
            age
        })
    }
}

class Father extends Component {
    render() {
        return (
            <div>
                <h2>爸爸組件</h2>
                <Son />
            </div>
        )
    }
}
class Son extends Component {
    render() {
        // 解構(gòu)
        const { nickName, level, foo } = this.context
        return (
            <div>
                <h2>兒子組件</h2>
                <h3>nickname:{nickName}</h3>
                <h3>level:{level}</h3>
                {/* 下面兩種調(diào)用方式都可以 */}
                {/* 改變爺組件的數(shù)據(jù) */}
                <button onClick={() => this.handelClick()}>updated</button>
                <button onClick={() => foo('牛霸天', 18)}>updated</button>
            </div>
        )
    }
    handelClick() {
        this.context.foo('牛霸天', 18)
    }
}
// 接受爺組件傳遞的值
Son.contextType = UserMessage

爺給孫組件通信就不多說了,直接創(chuàng)建context傳入默認對象,然后在爺組件用該創(chuàng)建名創(chuàng)建對象包裹父組件,通過value傳值過去,然后在孫組件Son.contextType 進行接收,在this.context取值即可。

孫給爺傳值則是和子跟父傳值的道理一樣,通過傳入回調(diào)函數(shù)來進行修改。

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

相關文章

  • react-router6.x路由配置及導航詳解

    react-router6.x路由配置及導航詳解

    這篇文章主要介紹了react-router6.x路由配置及導航,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 淺談react受控組件與非受控組件(小結(jié))

    淺談react受控組件與非受控組件(小結(jié))

    本篇文章主要介紹了淺談react受控組件與非受控組件(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • React中嵌套組件與被嵌套組件的通信過程

    React中嵌套組件與被嵌套組件的通信過程

    這篇文章主要介紹了React中嵌套組件與被嵌套組件的通信過程,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • React前端解鏈表數(shù)據(jù)結(jié)構(gòu)示例詳解

    React前端解鏈表數(shù)據(jù)結(jié)構(gòu)示例詳解

    這篇文章主要為大家介紹了React前端解鏈表數(shù)據(jù)結(jié)構(gòu)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • React 組件間的通信示例

    React 組件間的通信示例

    這篇文章主要介紹了React 組件間的通信示例,主要通信劃分為三種,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 詳解React Native與IOS端之間的交互

    詳解React Native與IOS端之間的交互

    React Native (簡稱RN)是Facebook于2015年4月開源的跨平臺移動應用開發(fā)框架,是Facebook早先開源的JS框架 React 在原生移動應用平臺的衍生產(chǎn)物,支持iOS和安卓兩大平臺。本文將介紹React Native與IOS端之間的交互。
    2021-06-06
  • React冒泡和阻止冒泡的應用詳解

    React冒泡和阻止冒泡的應用詳解

    這篇文章主要介紹了React冒泡和阻止冒泡的應用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • react?fiber使用的關鍵特性及執(zhí)行階段詳解

    react?fiber使用的關鍵特性及執(zhí)行階段詳解

    這篇文章主要為大家介紹了react?fiber使用的關鍵特性及執(zhí)行階段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • React18+TS通用后臺管理系統(tǒng)解決方案落地實戰(zhàn)示例

    React18+TS通用后臺管理系統(tǒng)解決方案落地實戰(zhàn)示例

    這篇文章主要為大家介紹了React18+TS通用后臺管理系統(tǒng)解決方案落地實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • React自定義hook的方法

    React自定義hook的方法

    Hook是 React 16.8 的新增特性。它通常與函數(shù)式組件同時使用??梢允购瘮?shù)式組件在不編寫 class 的情況下,可以擁有class組件的狀態(tài)、生命周期、引用等功能,這篇文章主要介紹了React自定義hook的相關知識,需要的朋友可以參考下
    2022-06-06

最新評論