Reactjs中{… this.props}的含义是什么?

是什么意思

{...this.props} 

我正在尝试使用它

  <div {...this.props}> Content Here </div> 

它被称为传播属性 ,其目的是使道具的传递更容易。

让我们想象你有一个接受N个属性的组件。 如果这些数字增长的话,将这些数据传递下来可能是单调乏味的。

 <Component x={} y={} z={} /> 

因此,你可以这样做,把它们包装在一个对象中,并使用传播符号

 var props = { x: 1, y: 1, z:1 }; <Component {...props} /> 

这会将它解压缩到你的组件的道具上,也就是说,只有当你将道具传递给另一个组件时,你才不会在你的render()函数中使用{... props} 。 正常使用你的解压缩道具this.props.x

这是ES-6function。 这意味着你提取道具的所有属性在div中。 {…}运算符用于提取对象的属性。

这是ES6 Spread_operatorDestructuring_assignment

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

<div {...this.props}> Content Here </div>

它等于

类组件

REPL: https : //jscomplete.com/repl/

 const person = { name: "xgqfrms", age: 23, country: "China" }; class TestDemo extends React.Component { render() { const {name, age, country} = {...this.props}; // const {name, age, country} = this.props; return ( <div> <h3> Person Information: </h3> <ul> <li>name={name}</li> <li>age={age}</li> <li>country={country}</li> </ul> </div> ); } } ReactDOM.render( <TestDemo {...person}/> , mountNode ); 

它会编译到这个:

 React.createElement('div', this.props, 'Content Here'); 

正如你所看到的,它将所有的道具传递给div

当我们使用我们定义的组件时,我们可以添加称为道具的属性。 这些属性在我们的组件中可用,如this.props,并且可以在我们的render方法中用于呈现dynamic数据:

 var MyComponent = React.createClass({ render: function(){ return ( <h1>Hello, {this.props.name}!</h1> ); } }); React.render(<MyComponent name="Handsome" />, document.getElementById('myDiv')); 

你也可以在这里结帐reactjs