• 数据流
    • Props
    • State

    数据流

    本节将介绍如何在 React 中应用简单的数据流。

    在 React 中,数据的载体主要有两种方式:

    • props
    • state

    来看一下如何使用者两种不同的方式来处理数据。

    Props

    props 即属性 (property),是在组件初始化之后就从父级组件带入的到组件内部。

    我们无法在使用的过程中对组件的属性进行修改。

    1. // 定义一个 React 组件
    2. var A = React.createClass({
    3. render: function () {
    4. return <h1>{this.props.text}</h1>
    5. }
    6. })
    7. // 使用组件 A
    8. ReactDOM.render(
    9. <A text="title" />,
    10. document.getElementById('app')
    11. )

    在以上代码中,我们定义了一个组件 A,然后在 render 方法中渲染了一个内容为 this.props.text 的变量。

    State

    state则是实际上组件中使用的「数据」:

    1. var B = React.createClass({
    2. getInitialState: function () {
    3. return {
    4. value: 0
    5. }
    6. },
    7. render: function () {
    8. return (
    9. <div>
    10. <input value={this.state.value} />
    11. <button onClick={() => {
    12. this.setState({
    13. value: ++this.state.value
    14. })
    15. }}>+</button>
    16. </div>
    17. )
    18. }
    19. })
    20. ReactDOM.render(
    21. <B />,
    22. document.getElementById('app')
    23. )

    在上述例子中,可以看到我们给一个<button>绑定了click事件:

    1. this.setState({
    2. value: ++this.state.value
    3. });

    调用 this.setState() 方法可以修改组件的state,并重新调用render方法 — 重新渲染组件。