In React 19, the handling of unexpected tags during hydration has been significantly improved, particularly in how it interacts with third-party scripts and browser extensions. Here are specific examples of how React 19 skips over unexpected tags:
Skipping Unexpected Tags
1. Head and Body Elements: When React encounters unexpected tags in the `
` and `` sections of the document during hydration, it intelligently skips over these tags instead of triggering a hydration mismatch error. This means that if a third-party script has inserted elements that do not match the server-rendered HTML, React will not attempt to reconcile these differences, thus avoiding potential errors and disruptions in the application rendering process[1][2][4].2. Preserving Stylesheets: If React needs to re-render the entire document due to a hydration mismatch that is unrelated to third-party modifications, it will leave in place any stylesheets that were inserted by those scripts. This ensures that the visual integrity of the application remains intact even when discrepancies are detected[2][4].
3. Handling Third-Party Modifications: Previously, any modifications made by third-party scripts could lead to hydration errors, as React would attempt to reconcile the server-rendered HTML with the modified client-side HTML. In React 19, these modifications are ignored during hydration, allowing the application to continue functioning smoothly without being affected by external changes[1][4].
Example Scenario
Consider a scenario where a third-party script adds a `