• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    react開發教程之React 組件之間的通信方式

    來源:懂視網 責編:小采 時間:2020-11-27 22:32:56
    文檔

    react開發教程之React 組件之間的通信方式

    react開發教程之React 組件之間的通信方式:這兩天學習了React感覺組件通信這個地方知識點挺多的,而且很重要,所以,今天添加一點小筆記。 父子組件通訊 通訊手段 這是最常見的通信方式,父組件只需要將子組件需要的props傳給子組件,子組件直接通過this.props來使用。 通訊內容 更多要提的是
    推薦度:
    導讀react開發教程之React 組件之間的通信方式:這兩天學習了React感覺組件通信這個地方知識點挺多的,而且很重要,所以,今天添加一點小筆記。 父子組件通訊 通訊手段 這是最常見的通信方式,父組件只需要將子組件需要的props傳給子組件,子組件直接通過this.props來使用。 通訊內容 更多要提的是

    這兩天學習了React感覺組件通信這個地方知識點挺多的,而且很重要,所以,今天添加一點小筆記。

    父子組件通訊

    通訊手段

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

    通訊內容

    更多要提的是如何合理的設置子組件的props,要想將子組件設計成一個復用性強的通用組件,需要將能夠復用的部分抽象出來,抽象出來的props有兩種形成,一種是簡單的變量,另一種是抽象出來處理某種邏輯函數。

    以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("返回上一頁")
     }
    
     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>
     );
     }
    }
    

    子父組件通訊

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

    利用回調函數

    父組件通過props傳遞一個方法給子組件,子組件通過props方法將子組件數據傳遞給父組件

    利用ref

    父組件通過refs調用子組件的屬性

    跨級組件通信

    在React中當一個屬性反復使用并且存在與好幾個子組件中的時候,這個時候我們如果通過props一級一級傳遞的話可以實現多層級訪問,但是這樣出現一個問題就是會使代碼非常混亂,在React中國年,我們還可以使用 context 來實現跨級父子組件間的通信;

    在react中context稱為蟲洞

    // Component 父級
    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>
     }
    }
    
    

    同級組件通信

    同級組件之間的通信還是需要通過父組件作為中介,利用多次父-子組件通信,項目中將需要傳遞的數據放在了父組件的state中,變動時可以自動的同步傳遞。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    react開發教程之React 組件之間的通信方式

    react開發教程之React 組件之間的通信方式:這兩天學習了React感覺組件通信這個地方知識點挺多的,而且很重要,所以,今天添加一點小筆記。 父子組件通訊 通訊手段 這是最常見的通信方式,父組件只需要將子組件需要的props傳給子組件,子組件直接通過this.props來使用。 通訊內容 更多要提的是
    推薦度:
    標簽: 的方法 開發 方式
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品三级在线观看| 欧美精品/日韩精品/国产精品| 亚洲码国产精品高潮在线| 久久精品一区二区国产| 亚洲国产一二三精品无码| 国产精品一级毛片无码视频| 99精品在线观看| 人妻精品久久久久中文字幕69 | 久久久久亚洲精品天堂久久久久久 | 在线亚洲精品福利网址导航| 国产精品内射婷婷一级二| 久久99热只有频精品8| 国产成人精品免费视频网页大全| 亚洲国产精品无码一线岛国| 久久93精品国产91久久综合| 99久久综合国产精品二区| 国产成人精品日本亚洲专| 久久国产精品99国产精| 亚洲AV永久青草无码精品| 欧美精品免费专区在线观看| 国产精品无码DVD在线观看| 久久精品这里热有精品| 国产精品丝袜一区二区三区 | 国产精品2019| 老子影院午夜精品无码 | 亚洲色精品aⅴ一区区三区| 久久久这里有精品中文字幕| 精品无码国产自产拍在线观看蜜| 国产成人精品a视频一区| 56prom精品视频在放免费| 亚洲成人精品久久| 欧美日激情日韩精品| 日本精品一区二区三区在线观看| 久久精品毛片免费观看| 久久er99热精品一区二区| 国产午夜精品无码| 国产麻豆精品久久一二三 | 日韩精品真人荷官无码| 亚洲AV无码精品色午夜果冻不卡 | 日韩一区二区精品观看| 拍国产乱人伦偷精品视频|