美文网首页
react组件间通信

react组件间通信

作者: 蛮吉大人123 | 来源:发表于2018-07-09 12:45 被阅读19次

React 开发模式是组件化开发, 所以组件间的信息传递就尤为重要,React传递数据的方式主要有3种。

  1. props
import React, { Component } from 'react';

function ChildrenComponent(props) {
  return (
    <div>
      <p>{props.text}</p>
      <button onClick={() => { props.hanldeClick('Hello, parent components! '); }}>call parent component</button>
    </div>
  );
}

export default class Test extends Component {
  state = {
    text: 'Hello World! ',
  }

  hanldeClick = (text) => {
    alert(text);
  }

  render() {
    return <ChildrenComponent hanldeClick={this.hanldeClick} text={this.state.text} />;
  }
}

通过props传值只能是父组件给子组件传值,父组件如果想要获取子组件的数据,可以通过子组件调用父组件的方法来实现。

  1. context
import React, { Component } from 'react';

const TextContext = React.createContext('Hello JavaScript, this is defalut word.');

function GrandsonComponent() {
  return (
    <TextContext.Consumer>
      {text => <p>{text}</p>}
    </TextContext.Consumer>
  );
}

function ChildrenComponent() {
  return (
    <div>
      <GrandsonComponent />
    </div>
  );
}

export default class Test extends Component {
  state = {
    text: 'Hello JavaScript, this is global word.',
  }

  render() {
    return (
      <div>
        <TextContext.Provider value={this.state.text}>
          <ChildrenComponent />
        </TextContext.Provider>
        <TextContext.Consumer>
          {text => <p>{text}</p>}
        </TextContext.Consumer>
      </div>
    );
  }
}

context 通过Provider提供数据,用Consumer接收数据, 不止局限于父子组件,多级子组件之间都可以传递数据,这样可以避免需要使用中间元素传递props, 但是context这个属性可能比较耗性能,所以React建议不要只是用来在多层次的组件间传递数据,而且这个数据必须要有复用的可能。

  1. redux之类的第三方库
    使用redux可以将整个应用的所有数据都管理在一棵store树上面,哪个组件需要使用只要connect相应的数据即可。不过需要注意的是, 使用redux进行状态管理之后尽量不要再使用state去渲染页面,不然这样容易造成数据的混乱。

相关文章

  • React组件间通信

    不借助redux等状态管理工具的React组件间的通信解决方法 组件通信分类 React组件间通信分为2大类,3种...

  • React学习拾遗2

    组件间通信: 龟兔赛跑-React组件间通信Demo:http://js.jirengu.com/yowec/ed...

  • React Native 架构之 Redux介绍

    React 在 React 中,UI 以组件的形式来搭建,组件之间可以嵌套组合。另,React 中组件间通信的数据...

  • React父子组件间通信的实现方式

    React学习笔记之父子组件间通信的实现:今天弄清楚了父子组件间通信是怎么实现的。父组件向子组件通信是通过向子组件...

  • (1)React的开发

    1、React项目架构搭建2、JSX语法3、React组件化开发4、React组件间通信5、React中的事件6、...

  • 「React Native」Event Bus,消息总线

    (一)父子间组件通信:   一般使用props,回调函数进行通信。(二)跨组件之间通信:  (1)React Na...

  • React组件间通信

    父组件向子组件 定义组件的方法就是通过React.createClass,当我们使用组件并且给其属性的时候,这个属...

  • react组件间通信

    React 开发模式是组件化开发, 所以组件间的信息传递就尤为重要,React传递数据的方式主要有3种。 prop...

  • react组件间通信

    react中的props和state props只读,用于组件之间传递信息,这个信息包括:数据和函数 state用...

  • react组件间通信

    处理 React 组件之间的交流方式,主要取决于组件之间的关系,然而这些关系的约定人就是你。 React 组件之间...

网友评论

      本文标题:react组件间通信

      本文链接:https://www.haomeiwen.com/subject/zaiwyftx.html