Introduction to useTransition
Allows you to prioritise the state updates.
10,000 text fields. <- can be updated later
One text input. <- needs higher priority to keep the UI fluid
import {useState, useTransition, startTransition} from 'React'
function App() {
  const [isPending, startTransition] = useTransition()
  const [input, setInput] = useState("")
  const [list, setList] = useState([])
  const LIST_SIZE = 20000
  function handleChange(e) {
    setInput(e.target.value)
    startTransition(() => {
       const l = []
       for (let i=0; i< LIST_SIZE; i++) {
          l.push(e.target.value)
       }
       setList(l)
     })
  }
  return (
    <>
      <input type="text" value={input} onChange={handleChange} />
      {
        isPending
          ? "Loading"
          : list.map((item, index) => {
              return <div key={index}>{item}</div>
          })
      }
    </>
  )
}