标签:cond ntb 解决 log error als node 数据结构 cti
class TodoList extends React.Component {
constructor(props, context){
super(props)
}
}
this.state
的初始值。React.createClass({ getInitialState: function() { return {liked: false}; }, render: function() { ... } });
this.props
(使用 in
检测属性)。this.props
。另外,getDefaultProps()
返回的任何复杂对象将会在实例间共享,而不是每个实例拥有一份拷贝。React.createClass({ getDefaultProps: function() { return {liked: false}; }, render: function() { ... } });
PropTypes
属性,就是用来验证组件实例的属性是否符合要求React.createClass({ propTypes: { optionalArray: React.PropTypes.array, optionalBool: React.PropTypes.bool, optionalFunc: React.PropTypes.func, optionalNumber: React.PropTypes.number, optionalObject: React.PropTypes.object, optionalString: React.PropTypes.string, // 所有可以被渲染的对象:数字,字符串,DOM 元素或包含这些类型的数组。 optionalNode: React.PropTypes.node, // React 元素 optionalElement: React.PropTypes.element, // 用 JS 的 instanceof 操作符声明 prop 为类的实例。 optionalMessage: React.PropTypes.instanceOf(Message), // 用 enum 来限制 prop 只接受指定的值。 optionalEnum: React.PropTypes.oneOf([‘News‘, ‘Photos‘]), // 指定的多个对象类型中的一个 optionalUnion: React.PropTypes.oneOfType([ React.PropTypes.string, React.PropTypes.number, React.PropTypes.instanceOf(Message) ]), // 指定类型组成的数组 optionalArrayOf: React.PropTypes.arrayOf(React.PropTypes.number), // 指定类型的属性构成的对象 optionalObjectOf: React.PropTypes.objectOf(React.PropTypes.number), // 特定形状参数的对象 optionalObjectWithShape: React.PropTypes.shape({ color: React.PropTypes.string, fontSize: React.PropTypes.number }), // 以后任意类型加上 `isRequired` 来使 prop 不可空。 requiredFunc: React.PropTypes.func.isRequired, // 不可空的任意类型 requiredAny: React.PropTypes.any.isRequired, // 自定义验证器。如果验证失败需要返回一个 Error 对象。不要直接使用 `console.warn` 或抛异常,因为这样 `oneOfType` 会失效。 customProp: function(props, propName, componentName) { if (!/matchme/.test(props[propName])) { return new Error(‘Validation failed!‘); } } } });
ref
属性<input type="text" ref="myTextInput" />
this.refs.myTextInput.focus();
mixins
来解决这类问题。setInterval()
并保证在组件销毁时清理定时器。var SetIntervalMixin = { componentWillMount: function() { this.intervals = []; }, setInterval: function() { this.intervals.push(setInterval.apply(null, arguments)); }, componentWillUnmount: function() { this.intervals.map(clearInterval); } }; var TickTock = React.createClass({ mixins: [SetIntervalMixin], // 引用 mixin getInitialState: function() { return {seconds: 0}; }, componentDidMount: function() { this.setInterval(this.tick, 1000); // 调用 mixin 的方法 }, tick: function() { this.setState({seconds: this.state.seconds + 1}); }, render: function() { return ( <p> React has been running for {this.state.seconds} seconds. </p> ); } }); React.render( <TickTock />, document.getElementById(‘example‘) );
statics
对象允许你定义静态的方法,这些静态的方法可以在组件类上调用var MyComponent = React.createClass({ statics: { customMethod: function(foo) { return foo === ‘bar‘; } }, render: function() { } }); MyComponent.customMethod(‘bar‘); // true
标签:cond ntb 解决 log error als node 数据结构 cti
原文地址:http://www.cnblogs.com/vs1435/p/7341399.html