Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
React Hooks vs. Inline 2
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:132.0) Gecko/20100101 Firefox/132.0
Browser:
Firefox 132
Operating system:
Mac OS X 10.15
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Inline Updates
888794.8 Ops/sec
Hooks Updates
1080303.6 Ops/sec
Inline Mount
759676.8 Ops/sec
Hooks Mount
907568.1 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js"></script> <div id="inline"></div> <div id="hooks"></div>
Script Preparation code:
function ComponentWithInlineFunction() { const [__, forceRerender] = React.useState(); React.useEffect(() => { window.forceRerenderInline = forceRerender; }, []); const clickMe = evt => evt.preventDefault(); return React.createElement('button', {onClick: clickMe}, 'Click me!'); } ReactDOM.render(React.createElement(ComponentWithInlineFunction), document.getElementById('inline')) function ComponentWithUseCallback() { const [__, forceRerender] = React.useState(); React.useEffect(() => { window.forceRerenderHooks = forceRerender; }, []); const clickMe = React.useCallback(evt => evt.preventDefault(), []); return React.createElement('button', {onClick: clickMe}, 'Click me!'); } ReactDOM.render(React.createElement(ComponentWithUseCallback), document.getElementById('hooks'))
Tests:
Inline Updates
window.forceRerenderInline({})
Hooks Updates
window.forceRerenderHooks({})
Inline Mount
ReactDOM.render(React.createElement(ComponentWithInlineFunction), document.getElementById('inline'))
Hooks Mount
ReactDOM.render(React.createElement(ComponentWithUseCallback), document.getElementById('hooks'))