当前位置: 首页 > 知识库问答 >
问题:

想知道更多关于道具

惠野
2023-03-14

我试着阅读关于JS和React的书籍和观看视频,但我仍然没有更好地理解React道具

共有1个答案

满博
2023-03-14

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

值得注意的是,组件永远不应该更改其道具,它们是不变的。如果组件具有可变数据,请使用状态对象。

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);

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

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

使用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
); 
 类似资料:
  • 本文向大家介绍关于JavaScript作用域你想知道的一切,包括了关于JavaScript作用域你想知道的一切的使用技巧和注意事项,需要的朋友参考一下 Javacript 中有一系列作用域的概念。对于新的JS的开发人员无法理解这些概念,甚至一些经验丰富的开发者也未必能。这篇文章主要目的帮助理解JavaScript中的一些概念如:scope,closure, this, namespace, fun

  • 主要内容:1、面试真题,2、面试官心理分析,3、面试题剖析1、面试真题 MySQ索引的原理和数据结构能介绍一下吗? b+树和b-树有什么区别? MySQL聚簇索引和非聚簇索引的区别是什么? 他们分别是如何存储的? 使用MySQL索引都有哪些原则? MySQL复合索引如何使用? 2、面试官心理分析 数据库是30k以内的工程师面试必问的问题,而且如果问数据库,一定是问mysql,N年前可能java工程师出去面试,oracle这块的技能是杀手锏,现在已经没人说

  • 问题内容: 只是问我是否有正确的理解 系统是打包出来的,是类println()是方法 如果这是错误的,请告诉我正确的答案是什么。 问题答案: 没有, 是类,它驻留在包中(这就是为什么您不需要导入它的原因)。 是class 的静态变量。它是 public ,因此您可以从外部访问它,并且它是 静态的, 因此它与类声明关联,而不与它的任何实例关联。 确实是一种方法。它是一个变量方法,它是一个实例。

  • 只是问我是否有正确的理解

  • 本文向大家介绍关于C#结构体 你需要知道的,包括了关于C#结构体 你需要知道的的使用技巧和注意事项,需要的朋友参考一下 结构体概念   在C#中,结构体是值类型,一般适用于表示类似Point、Rectangle、Color的对象   值类型能够降低对堆的管理、使用。降低垃圾回收,表现出更好的性能。可是值类型也有不好的一面。会涉及到装箱拆箱等操作 结构体声明   结构体声明定义了一种新的数据类型,这

  • 这是一个相当简单的问题,但我不能就此罢休。我最近又开始使用C语言了(一开始并没有太多的经验),所以我可以更好地理解引擎盖下发生的事情。我当然知道,argc和argv在传递给main()时,分别表示参数计数和参数向量。我想弄清楚的是编译器如何将int argc解释为从命令行传递的参数数。如果我编写了一个简单的函数,试图模拟main(即int testfunc(int argc,char*argv[]