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

react開發(fā)教程之React 組件之間的通信方式

 更新時(shí)間:2017年08月12日 17:02:38   投稿:zx  
本篇文章主要介紹了react開發(fā)教程之React組件通信詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

這兩天學(xué)習(xí)了React感覺組件通信這個(gè)地方知識(shí)點(diǎn)挺多的,而且很重要,所以,今天添加一點(diǎn)小筆記。

父子組件通訊

通訊手段

這是最常見的通信方式,父組件只需要將子組件需要的props傳給子組件,子組件直接通過(guò)this.props來(lái)使用。

通訊內(nèi)容

更多要提的是如何合理的設(shè)置子組件的props,要想將子組件設(shè)計(jì)成一個(gè)復(fù)用性強(qiáng)的通用組件,需要將能夠復(fù)用的部分抽象出來(lái),抽象出來(lái)的props有兩種形成,一種是簡(jiǎn)單的變量,另一種是抽象出來(lái)處理某種邏輯函數(shù)。

以Header 組件為例

//HeaderBar.jsx 子組件

import React, { Component } from 'react';

class Header extends Component {
  constructor() {
    super();
    this.handleClick = (e) => {
      console.log(this)
    }
  }

  renderLeftComponent() {

    let leftDOM = {};
    if (this.props.renderLeftComponent) {
      return this.props.renderLeftComponent();
    }

    if (this.props.showBack) {
      let backFunc = this.props.onBack || this.goBack;
      leftDOM = (<a onClick={backFunc.bind(this)}><i className="icon left-icon icon-left-arrow"></i></a>);
    }
    return leftDOM;
  }
  

  renderRightComponent() {
    if (this.props.renderRightComponent) {
      return this.props.renderRightComponent();
    }
  }

  goBack() {
    alert("返回上一頁(yè)")
  }

  render() {
    return (
      <header className="header-bar">
        {this.renderLeftComponent()}
        <span>{this.props.title || '滴滴'}</span>
        {this.renderRightComponent()}
      </header>
    );
  }
}

export default Header;

//父親組件部分代碼App.jsx
import HeaderBar from "./components/Header";

let leftIcon = function () {
 return (
  <a><i className="icon left-icon icon-left-haha"></i>左邊按鈕</a>
 )
}
class App extends Component {

 render() {
  return (
   <div className="App">
    <HeaderBar title="滴滴打車" renderLeftComponent={leftIcon} />
   </div>
  );
 }
}

子父組件通訊

父-子組件通信的手段是通過(guò)子組件的props是子組件用父組件的東西,子-父組件通信,是父組件用子組件的東西,暫時(shí)了解的兩種方法

利用回調(diào)函數(shù)

父組件通過(guò)props傳遞一個(gè)方法給子組件,子組件通過(guò)props方法將子組件數(shù)據(jù)傳遞給父組件

利用ref

父組件通過(guò)refs調(diào)用子組件的屬性

跨級(jí)組件通信

在React中當(dāng)一個(gè)屬性反復(fù)使用并且存在與好幾個(gè)子組件中的時(shí)候,這個(gè)時(shí)候我們?nèi)绻ㄟ^(guò)props一級(jí)一級(jí)傳遞的話可以實(shí)現(xiàn)多層級(jí)訪問(wèn),但是這樣出現(xiàn)一個(gè)問(wèn)題就是會(huì)使代碼非?;靵y,在React中國(guó)年,我們還可以使用 context 來(lái)實(shí)現(xiàn)跨級(jí)父子組件間的通信;

在react中context稱為蟲洞

// Component 父級(jí)
class parentComponent extends React.Component {
  
  // add the following property
  static childContextTypes = {
    color: React.PropTypes.string
  }
  
  // 添加下面方法
  getChildContext() {
    return {
      color: "#f00"
    }
  }
  
  render() {
    <div>
      <Child1 />
    </div>
  }
}


// Component Child1
class Child1 extends React.Component {
  // 添加下面屬性
  static contextTypes = {
    color: React.PropTypes.string
  }
  
  render() {
    <div>{this.context.color}</div>
  }
}

同級(jí)組件通信

同級(jí)組件之間的通信還是需要通過(guò)父組件作為中介,利用多次父-子組件通信,項(xiàng)目中將需要傳遞的數(shù)據(jù)放在了父組件的state中,變動(dòng)時(shí)可以自動(dòng)的同步傳遞。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(左右聯(lián)動(dòng))

    React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(左右聯(lián)動(dòng))

    這篇文章主要為大家詳細(xì)介紹了React實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解React中的setState執(zhí)行機(jī)制

    詳解React中的setState執(zhí)行機(jī)制

    setState是React組件中用于更新狀態(tài)的方法,是類組件中的方法,用于更新組件的狀態(tài)并重新渲染組件,本文給大家詳細(xì)介紹了React中的setState執(zhí)行機(jī)制,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • react實(shí)現(xiàn)菜單權(quán)限控制的方法

    react實(shí)現(xiàn)菜單權(quán)限控制的方法

    本篇文章主要介紹了react實(shí)現(xiàn)菜單權(quán)限控制的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 淺談React高階組件

    淺談React高階組件

    這篇文章主要介紹了淺談React高階組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • React和Vue的props驗(yàn)證示例詳解

    React和Vue的props驗(yàn)證示例詳解

    這篇文章主要介紹了React和Vue的props驗(yàn)證,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • React?Native?Modal?的封裝與使用實(shí)例詳解

    React?Native?Modal?的封裝與使用實(shí)例詳解

    這篇文章主要介紹了React?Native?Modal?的封裝與使用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 詳解React?的數(shù)據(jù)流和生命周期

    詳解React?的數(shù)據(jù)流和生命周期

    這篇文章主要介紹了React?的數(shù)據(jù)流和生命周期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳解如何給React-Router添加路由頁(yè)面切換時(shí)的過(guò)渡動(dòng)畫

    詳解如何給React-Router添加路由頁(yè)面切換時(shí)的過(guò)渡動(dòng)畫

    這篇文章主要介紹了詳解如何給React-Router添加路由頁(yè)面切換時(shí)的過(guò)渡動(dòng)畫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • React函數(shù)式組件與類組件的不同你知道嗎

    React函數(shù)式組件與類組件的不同你知道嗎

    這篇文章主要為大家詳細(xì)介紹了React函數(shù)式組件與類組件的不同,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • react  Suspense工作原理解析

    react  Suspense工作原理解析

    這篇文章主要為大家介紹了react  Suspense工作原理解析以及基本應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論