This survey closed on November 15, 2023. View Survey Results »

createContext lets you create a context that components can provide or read.
jsx
const SomeContext = createContext(defaultValue)
Tell us more:
Tell us more:
Tell us more:

createPortal lets you render some children into a different part of the DOM.
jsx
<div>
  <SomeComponent />
  {createPortal(children, domNode, key?)}
</div>
Tell us more:
Tell us more:
Tell us more:

forwardRef lets your component expose a DOM node to parent component with a ref.
jsx
const SomeComponent = forwardRef(render)
Tell us more:
Tell us more:
Tell us more:

<Fragment>, often used via <>...</> syntax, lets you group elements without a wrapper node.
jsx
<>
  <OneChild />
  <AnotherChild />
</>
Tell us more:
Tell us more:
Tell us more:

lazy lets you defer loading component’s code until it is rendered for the first time.
jsx
const SomeComponent = lazy(load)
Tell us more:
Tell us more:
Tell us more:

memo lets you skip re-rendering a component when its props are unchanged.
jsx
const MemoizedComponent = memo(SomeComponent, arePropsEqual?)
Tell us more:
Tell us more:
Tell us more:

<Profiler> lets you measure rendering performance of a React tree programmatically.
jsx
<Profiler id="App" onRender={onRender}>
  <App />
</Profiler>
Tell us more:
Tell us more:
Tell us more:

<StrictMode> lets you find common bugs in your components early during development.
jsx
<StrictMode>
  <App />
</StrictMode>
Tell us more:
Tell us more:
Tell us more:

State of React 2023