React笔记 -- 组件传值

通信问题

组件会发生三种通信。

  • 向子组件发消息
  • 向父组件发消息
  • 向其他组件发消息

React 只提供了一种通信手段:传参。对于大应用,很不方便。

#组件通信的例子

#步骤1

class Son extends React.Component {
  render() {
    return <input/>;
  }
}

class Father extends React.Component {
  render() {
    return <div>
      <Son/>
      <p>这里显示 Son 组件的内容</p>
    </div>;
  }
}

ReactDOM.render(<Father/>, mountNode);

看这个例子,想一想父组件如何拿到子组件的值。

#步骤2

class Son extends React.Component {
  render() {
    return <input onChange={this.props.onChange}/>;
  }
}

class Father extends React.Component {
  constructor() {
    super();
    this.state = {
      son: ""
    }
  }
  changeHandler(e) {
    this.setState({
      son: e.target.value
    });
  }
  render() {
    return <div>
      <Son onChange={this.changeHandler.bind(this)}/>
      <p>这里显示 Son 组件的内容:{this.state.son}</p>
    </div>;
  }
}

ReactDOM.render(<Father/>, mountNode);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 您将在本文当中了解到,往网页中添加数据,从传统的dom操作过渡到数据层操作,实现同一个目标,两种不同的方式....
    itclanCoder阅读 26,061评论 1 12
  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 12,678评论 1 33
  • 目前,react组件有三种写法,分别是es5的createClass写法,es6的class写法,以及statel...
    ZoomFunc阅读 5,797评论 0 1
  • 窗外的紫罗兰 别担心 我不会摘下你的美 去送给我最爱的人 我不知道原因 你也别问我为何 美景虽在 却不见佳人 请你...
    人家故里阅读 2,047评论 0 0
  • 昨天和娃爸合作整理了一天的房间,一倒腾没归置完反而比之前更乱,忙乎了好久,终于局部比较规整,有模有样的,很提气。杂...
    丹桂飘香之秋阅读 3,335评论 0 1