props就是react的一个属性用来从外界给实例传递数据的,这里涉及到的问题是,如果是一点带你的属性数据,我们可以直接在标签的属性中来写,然后在实例中通过传过来的props来获得,但是如果非常多呢?这个时候就需要用到展开表达式来处理,但是有一个点需要特别的提醒:
原生的展开表达式是不能展开对象的,即不能写...p(p是一个对象),但是后来出了一个方法叫做{...p},注意了,这个不叫展开,这个连在一起就是把这个对象重新浅拷贝了一个新的对象,注意是拷贝~那么我们在react中如何处理呢?
class People extends React.Component {
render() {
const props = this.props;
return (
<ul>
<li>姓名: {props.name}</li>
<li>年龄: {props.age}</li>
<li>性别: {props.sex}</li>
</ul>
);
}
}
const p = {name: '小明', age: 18, sex: '男'}
ReactDOM.render(<People {...p}/>, document.getElementById('app'));
看到这里有一个{...p},但是这不是拷贝!{}是react的解析方式。唯一的解释就是...对象只能在标签中使用