Summary
reactStrictMode appears to be applied only for the Pages Router in vinext, but not for the App Router.
Based on current code/comments, this seems known internally (reactStrictMode is marked as partial), but I couldn't find a dedicated issue tracking App Router parity.
Current behavior
reactStrictMode: true enables StrictMode behavior for Pages Router client rendering.
- App Router is not wrapped/enforced the same way, so StrictMode checks are not activated there.
Expected behavior
For Next.js parity, App Router should respect strict mode behavior as well (or document a clear intentional divergence).
Evidence
In packages/vinext/src/check.ts, reactStrictMode is explicitly marked as partial with detail similar to:
enforced for the Pages Router ... App Router is not yet wrapped (Next.js defaults App Router strict mode on)
Reproduction (high level)
- Create/use an App Router app on vinext.
- Set
reactStrictMode: true in next.config.
- Add a small component that makes StrictMode dev behavior obvious (e.g. effect/log patterns).
- Compare with equivalent Pages Router setup and/or upstream Next.js behavior.
Questions
- Is this a known parity gap to be fixed?
- Should we track this as a dedicated compatibility issue?
- If intentional for now, can we document it more prominently in compatibility docs/check output?
Summary
reactStrictModeappears to be applied only for the Pages Router in vinext, but not for the App Router.Based on current code/comments, this seems known internally (
reactStrictModeis marked as partial), but I couldn't find a dedicated issue tracking App Router parity.Current behavior
reactStrictMode: trueenables StrictMode behavior for Pages Router client rendering.Expected behavior
For Next.js parity, App Router should respect strict mode behavior as well (or document a clear intentional divergence).
Evidence
In
packages/vinext/src/check.ts,reactStrictModeis explicitly marked as partial with detail similar to:Reproduction (high level)
reactStrictMode: trueinnext.config.Questions