Skip to content

drwpow/react-render-tests

Repository files navigation

React render tests

When does React re-render? When does it not? We’ll find out!

Summary

A component will re-render if:

  • Its parent re-renders, and the component is NOT wrapped in React.memo().
  • useState() is called. At all. Even if it’s setting state to the previous value.

Testing

You can run the tests yourself with:

pnpm i
pnpm test

This will print out a table of test results like so:

┌─────────┬────────────────────────────────────────┬────────┐
│ (index) │ test                                   │ result │
├─────────┼────────────────────────────────────────┼────────┤
│ 0       │ 'no-props'                             │ false  │
│ 1       │ 'no-props (memo)'                      │ true   │
│ 2       │ 'set-state-primitive-same'             │ false  │
│ 3       │ 'set-state-primitive-same (memo)'      │ false  │
│ 4       │ 'set-state-primitive-same-fn'          │ false  │
│ 5       │ 'set-state-primitive-same-fn (memo)'   │ false  │
│ 6       │ 'set-state-primitive-different'        │ false  │
│ 7       │ 'set-state-primitive-different (memo)' │ false  │
│ 8       │ 'use-effect'                           │ false  │
│ 9       │ 'use-effect (memo)'                    │ true   │
│ 10      │ 'use-ref'                              │ false  │
│ 11      │ 'use-ref (memo)'                       │ true   │
└─────────┴────────────────────────────────────────┴────────┘

In the corresponding test in src/tests/, you’ll find a description of what the test is aiming for, and you can look at the code.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published