关于props

103 阅读1分钟

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的解析方式。唯一的解释就是...对象只能在标签中使用