class ShoppingList extends React.Component {
render() {
return (
<div className="shopping-list">
<h1>Shopping List for {this.props.name}</h1>
<ul>
<li>Instagram</li>
<li>WhatsApp</li>
<li>Oculus</li>
</ul>
</div>
);
}
}
ShoppingList是一个React组件类(React组件类型)
props是组件接收的参数
render()方法返回一个React元素,显示视图的层次结构
注意点
- React应用中,数据通过props的传递,从父组件流向子组件。
- JavaScript中,每次你定义其子类的构造函数时,都需要调用
super
方法。因此,在所有含有构造函数的的 React 组件中,构造函数必须以super(props)
开头。 - 当你遇到需要同时获取多个子组件数据,或者两个组件之间需要相互通讯的情况时,需要把子组件的 state 数据提升至其共同的父组件当中保存。之后父组件可以通过 props 将状态数据传递到子组件当中。这样应用当中所有组件的状态数据就能够更方便地同步共享了。
- DOM 元素 `` 是一个内置组件,因此其
onClick
属性在 React 中有特殊的含义。而对于用户自定义的组件来说,命名就可以由用户自己来定义了。我们给 Square 的onClick
和 Board 的handleClick
赋予任意的名称,代码依旧有效。在 React 中,有一个命名规范,通常会将代表事件的监听 prop 命名为on[Event]
,将处理事件的监听方法命名为handle[Event]
这样的格式。
var player = {score: 1, name: 'Jeff'};
var newPlayer = Object.assign({}, player, {score: 2});
// player 的值没有改变, 但是 newPlayer 的值是 {score: 2, name: 'Jeff'}
Object.assign方法用于对象的合并,将源对象(对一个对象以外的对象)的所有可枚举属性,复制到目标对象(第一个对象)