想了解更多关于道具和状态的信息

Shw*_*eta -1 javascript reactjs react-redux

我尝试阅读有关 JS 和 React 的书籍和视频,但我仍然对 React-Props & States 没有更好的理解。有人可以详细解释我。

Anu*_*ngh 5

道具 组件道具可以被认为是一个组件的选项。它们作为组件的参数提供,看起来与 HTML 属性完全一样。

值得注意的是,一个组件不应该改变它的 props,它们是不可变的。如果组件具有可变数据,请使用状态对象。

var Photo = React.createClass({
  render: function() {
    return (
      <div className='photo'>
        <img src={this.props.src} />
        <span>{this.props.caption}</span>
      </div>
    );
  }
});

React.render(<Photo src='http://example.com/lkevsb9' caption='Hong Kong!' />, document.body);
Run Code Online (Sandbox Code Playgroud)

状态 状态对象是组件内部的。它保存可以随时间变化的数据。

在我们可以使用状态之前,我们需要为初始状态声明一组默认值。这是通过定义一个名为 getInitialState() 的方法并返回一个对象来完成的。

使用 setState 方法设置状态。调用 setState 会触发 UI 更新。设置状态只能在组件内部完成。

var InterfaceComponent = React.createClass({
  getInitialState : function() {
    return {
      name : "chris"
    };
  },
  handleClick : function() {
    this.setState({
      name : "bob"
    });
  },
  render : function() {
    return <div onClick={this.handleClick}>
      hello {this.state.name}
    </div>;
  }
});

React.renderComponent(
  <InterfaceComponent />,
  document.body
); 
Run Code Online (Sandbox Code Playgroud)