mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
f53854bd93
This covers most everything. The perf suite still needs work for the Element updates. And the server rendering example needs to be done wholesale.
86 lines
2.4 KiB
JavaScript
86 lines
2.4 KiB
JavaScript
if (typeof exports == 'undefined') exports = {};
|
|
|
|
/*http://benchmarkjs.com/docs#options*/
|
|
|
|
exports.name = 'propTypes';
|
|
|
|
var Thing = function() {};
|
|
var List;
|
|
var ListItem;
|
|
var MyReactComponent;
|
|
var _rootNode;
|
|
|
|
exports.setup = function(){
|
|
List = React.createClass({
|
|
propTypes: {
|
|
array: React.PropTypes.array,
|
|
bool: React.PropTypes.bool.isRequired,
|
|
number: React.PropTypes.number,
|
|
string: React.PropTypes.string.isRequired,
|
|
func: React.PropTypes.func.isRequired,
|
|
renderable: React.PropTypes.renderable.isRequired,
|
|
instanceOf: React.PropTypes.instanceOf(Thing).isRequired
|
|
},
|
|
render: function() {
|
|
return React.DOM.ul(null, this.props.children);
|
|
}
|
|
});
|
|
|
|
ListItem = React.createClass({
|
|
propTypes: {
|
|
array: React.PropTypes.array,
|
|
bool: React.PropTypes.bool.isRequired,
|
|
number: React.PropTypes.number,
|
|
string: React.PropTypes.string.isRequired,
|
|
func: React.PropTypes.func.isRequired,
|
|
renderable: React.PropTypes.renderable.isRequired,
|
|
renderable2: React.PropTypes.renderable.isRequired,
|
|
instanceOf: React.PropTypes.instanceOf(Thing).isRequired,
|
|
component: React.PropTypes.component.isRequired
|
|
},
|
|
render: function(){
|
|
return React.DOM.li(null,
|
|
this.props.number + this.props.string + this.props.renderable
|
|
);
|
|
}
|
|
});
|
|
|
|
MyReactComponent = React.createClass({
|
|
render: function() {
|
|
return React.DOM.span();
|
|
}
|
|
});
|
|
|
|
_rootNode = document.createElement('div');
|
|
document.body.appendChild(_rootNode);
|
|
};
|
|
exports.fn = function(){
|
|
var items = [];
|
|
for (var i = 0; i < 1000; i++) {
|
|
items.push(ListItem({
|
|
array: [11, 12, 13, 14, 15, 16, 17, 18, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
|
|
bool: false,
|
|
number: Math.random(),
|
|
string: 'banana banana banana',
|
|
func: function() { return 'this is a function'; },
|
|
renderable: 'renderable string',
|
|
renderable2: [MyReactComponent(), 'a string'],
|
|
instanceOf: new Thing,
|
|
component: MyReactComponent()
|
|
}));
|
|
};
|
|
|
|
React.render(List({
|
|
array: [11, 12, 13, 14, 15, 16, 17, 18, 19, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
|
|
bool: false,
|
|
number: Math.random(),
|
|
string: 'banana banana banana',
|
|
func: function() { return 'this is a function'; },
|
|
renderable: 'renderable string',
|
|
instanceOf: new Thing
|
|
}, items), _rootNode);
|
|
};
|
|
exports.teardown = function(){
|
|
React.unmountComponentAtNode(_rootNode);
|
|
};
|