Test name | Executions per second |
---|---|
Inline | 543579.6 Ops/sec |
Hooks | 638896.4 Ops/sec |
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.production.min.js"></script>
<div id="root"></div>
function ComponentWithInlineFunction() {
const [state, setState] = React.useState('test');
const clickMe = evt => {
evt.preventDefault();
console.log(state);
}
return React.createElement('button', {
onClick: clickMe
}, 'Click me!');
}
function ComponentWithUseCallback() {
const [state, setState] = React.useState('test');
const clickMe = React.useCallback(evt => {
evt.preventDefault();
console.log(state);
}, [state]);
return React.createElement('button', {
onClick: clickMe
}, 'Click me!');
}
ReactDOM.render(React.createElement(ComponentWithInlineFunction), document.getElementById('root'))
ReactDOM.render(React.createElement(ComponentWithUseCallback), document.getElementById('root'))