1、React里有一个非常常用的模型就是对组件做一层抽象。组件对外公开一个简单的属性(Props)来实现功能,但内部细节坑内有分厂复杂的实现。可以使用JSX展开属性来合并现有的props和其他值:
return <Commponent{...this.props}more="balues" />;
如果不使用JSX,可以使用一些队形复制方法如ES6的object。assign或UnderScore_.extend。
returnComponent(Object.assign({},this.props,{more:'values’}));
PS:JSX展开属性:
如果事先知道组件需要的全部PRops(属性),JSX很容易地这样写:
var component =<Componentfoo={x} bar ={y} />;
修改Props是不好的:
如果知道要设置那些Props那么现在最好不要设置它:
var component = <Component/>
coponent.props.foo=x;
component.pros.bar=y;
这样是反模式,因为React 不能帮你检查属性类型(propTypes)。这样即使你的 属性类型有错误也不能得到清晰的错误提示。
Props应该被当作禁止修改的。修改 props 对象可能会导致预料之外的结果,所以最好不要去修改 props 对象。
展开属性: