1. Concurrent React
1.1. Features
1.1.1. Suspense on the server
1.1.1.1. Node Server
1.1.1.1.1. Streaming HTML
1.1.1.2. Client
1.1.1.2.1. Wrap with <Suspense>
1.1.2. Transitions API
1.1.2.1. Urgent Updates
1.1.2.1.1. Typing
1.1.2.1.2. Clicking
1.1.2.1.3. Pressing
1.1.2.2. Transition Updates
1.1.2.2.1. UI Transition
1.1.2.3. startTransition (method)
1.1.2.3.1. Does not provide an isPending flag. (only in useTransition)
1.1.3. Automatic Batching
1.1.3.1. Batching (default)
1.1.3.1.1. Updates inside React event handlers
1.1.3.2. Not batching by default
1.1.3.2.1. Promises
1.1.3.2.2. setTimeOut
1.1.3.2.3. Native event handlers
1.2. API
1.2.1. ReactDOM Client
1.2.1.1. createRoot
1.2.1.1.1. Create a React root for the supplied container and return the root.
1.2.1.2. hydrateRoot
1.2.1.2.1. Used to hydrate a container whose HTML contents were rendered by ReactDOMServer.
1.2.2. ReactDOM Server
1.2.2.1. Node Server
1.2.2.1.1. renderToPipeableStream
1.2.2.2. renderToReadableStream
1.2.2.2.1. Returns a Promise that resolves to a Readable Stream
1.3. Hooks
1.3.1. useId
1.3.1.1. Generates stable ids and avoid mismatches.
1.3.1.1.1. Hydration
1.3.1.1.2. SSR
1.3.2. useTransition
1.3.2.1. const [isPending , startTransition] = useTransition( )
1.3.2.1.1. isPending
1.3.2.1.2. startingTransition
1.3.3. useDerrefedValue
1.3.3.1. Is used when receiving new data from a parent component.
1.3.4. useSyncExternalStore
1.3.4.1. Recommended for reading and subscribing from external data sources
1.3.5. useInsertionEffect
1.3.5.1. Use this to inject styles into the DOM before reading layout in useLayoutEffect