Javascript react路由器中的ECMA6扩展参数
我看到一个示例代码编写为Javascript react路由器中的ECMA6扩展参数,javascript,reactjs,ecmascript-6,react-router,Javascript,Reactjs,Ecmascript 6,React Router,我看到一个示例代码编写为 var App = React.createClass({ render: function () { return ( <div> <div className='content'> <RouteHandler {...this.state} /> </div> </div> ) } }) var-App=Re
var App = React.createClass({
render: function () {
return (
<div>
<div className='content'>
<RouteHandler {...this.state} />
</div>
</div>
)
}
})
var-App=React.createClass({
渲染:函数(){
返回(
)
}
})
这是让我困惑的部分
<RouteHandler {...this.state} />
在这种情况下,
RouteHandler
自定义元素使用…
。带有splat/rest参数的ECMA6函数在其函数定义中使用三个点。那么,为什么人们在应用程序端的函数调用(或)过程中使用…
这不是rest运算符,而是应用于JSX属性的。
看
相当于React.createElement(RouteHandler,Object.assign({},this.state))
请注意,JSX扩展属性特性的对象扩展和rest操作符不是ES6规范的一部分。在ES7中没有将它们包括在内。同时,您可以通过将
--harmony
选项传递给JSX编译器CLI,或将--stage 1
选项传递给CLI来使用它们。您应该澄清,这不是普通的ES6 spread操作符,而是一种JSX功能,它可以在对象上工作