Redux——React 组件中的数据传输

React中的数据有两种:prop和state。其中prop负责对外的数据交互,state负责内部的数据管理。

React中的prop

prop是property的简写,一个React组件通过定义prop来确定自己对外的数据接口,外部环境就通过prop来与组件进行交流。

1. 组件通过prop与外界交互

假如说有一个我们自定义的组件<MyComp>,那么我们在使用这个组件的时候就可以按照如下的方式来通过prop向该组件传入数据:

<MyComp name="charley" class="btn" onClick={onBtnClick}></MyComp>

其中的nameclassonClick就是prop。可以看到prop的类型还可以是函数,组件可以通过调用类型为函数的prop来将一些信息反馈给外界。

这里还需要注意一点,prop应该由外部组建设置,本组件并不能对其进行修改。

2. 组件使用prop

<MyComp>组件内部如下对prop进行使用

class MyComp extends Component {
  constructor () {
    super()
    // ...
  }
  // ...
  render () {
    return (
      <div onClick={ this.props.onClick.bind(this) }>
        <span>{ this.props.name }</span>
      </div>
    )
  }
}

React中的State

state代表的是内部的状态,例如我们开发一个有计数器的组件,其所记的数就可以作为一个state。在使用state的时候,我们首先要对其进行初始化,在对其进行更新的时候,使用setSate函数进行。

1. 初始化state

state的初始化在constructor()函数中完成。

constructor() {
  super()
  this.state = {
    count : this.props.count
  }
}

2. state更新

假如说我们这个组件中有一个"+"按钮,每次我们按这个按钮的时候,count就需要加1,其更新的方式为:

handleClick () {
  this.setState({
    count : this.state.count + 1
  })
}

一个完整的例子

class MyCount extends Component {
  constructor () {
    super()
    this.state = {
      count : this.props.initNumber || 0
    }
  }

  handleAddClick () {
    this.setState({
      count : this.state.count + 1
    }) 
  }

  render () {
    return (
      <div>
        { this.state.count }
        <button onClick={this.handleAddClick.bind(this)}>+</button>
        <button>-</button>
      </div>
    )
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 8,550评论 1 33
  • HTML模版 之后出现的React代码嵌套入模版中。 1. Hello world 这段代码将一个一级标题插入到指...
    ryanho84阅读 6,343评论 0 9
  • 做React需要会什么? react的功能其实很单一,主要负责渲染的功能,现有的框架,比如angular是一个大而...
    苍都阅读 14,850评论 1 139
  • 以下内容是我在学习和研究React时,对React的特性、重点和注意事项的提取、精练和总结,可以做为React特性...
    科研者阅读 8,319评论 2 21
  • 原型链式是个好东西,我们可以靠这个东西实现继承和派生。我们需要明白一些概念,原型,原型对象,原型链。我们一个个的来...
    赵BW阅读 366评论 0 0