{ "github": { "silent": true }, "trailingSlash": false, "redirects": [ { "source": "/reference", "destination": "/reference/react", "permanent": true }, { "source": "/reference/react-dom/hooks/useFormState", "destination": "/reference/react/useActionState", "permanent": true }, { "source": "/learn/meet-the-team", "destination": "/community/team", "permanent": true }, { "source": "/link/warning-keys", "destination": "/learn/rendering-lists#keeping-list-items-in-order-with-key", "permanent": false }, { "source": "/docs/lists-and-keys", "destination": "/learn/rendering-lists#keeping-list-items-in-order-with-key", "permanent": false }, { "source": "/link/invalid-hook-call", "destination": "/warnings/invalid-hook-call-warning", "permanent": false }, { "source": "/link/hooks-data-fetching", "destination": "/reference/react/useEffect#fetching-data-with-effects", "permanent": false }, { "source": "/link/special-props", "destination": "/warnings/special-props", "permanent": false }, { "source": "/link/dangerously-set-inner-html", "destination": "/reference/react-dom/components/common#dangerously-setting-the-inner-html", "permanent": false }, { "source": "/link/controlled-components", "destination": "/reference/react-dom/components/input#controlling-an-input-with-a-state-variable", "permanent": false }, { "source": "/link/react-devtools", "destination": "/learn/react-developer-tools", "permanent": false }, { "source": "/link/invalid-aria-props", "destination": "/warnings/invalid-aria-prop", "permanent": false }, { "source": "/link/hydration-mismatch", "destination": "/reference/react-dom/client/hydrateRoot#hydrating-server-rendered-html", "permanent": false }, { "source": "/link/switch-to-createroot", "destination": "/blog/2022/03/08/react-18-upgrade-guide#updates-to-client-rendering-apis", "permanent": false }, { "source": "/link/error-boundaries", "destination": "/reference/react/Component#catching-rendering-errors-with-an-error-boundary", "permanent": false }, { "source": "/link/strict-mode-find-node", "destination": "https://18.react.dev/reference/react-dom/findDOMNode#alternatives", "permanent": false }, { "source": "/link/rules-of-hooks", "destination": "/warnings/invalid-hook-call-warning", "permanent": false }, { "source": "/link/event-pooling", "destination": "https://legacy.reactjs.org/docs/legacy-event-pooling.html", "permanent": false }, { "source": "/link/legacy-context", "destination": "https://react.dev/blog/2024/04/25/react-19-upgrade-guide#removed-removing-legacy-context", "permanent": false }, { "source": "/link/crossorigin-error", "destination": "https://legacy.reactjs.org/docs/cross-origin-errors.html", "permanent": false }, { "source": "/link/react-polyfills", "destination": "https://legacy.reactjs.org/docs/javascript-environment-requirements.html", "permanent": false }, { "source": "/link/wrap-tests-with-act", "destination": "https://legacy.reactjs.org/docs/test-utils.html#act", "permanent": false }, { "source": "/link/refs-must-have-owner", "destination": "https://legacy.reactjs.org/warnings/refs-must-have-owner.html", "permanent": false }, { "source": "/link/derived-state", "destination": "https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html", "permanent": false }, { "source": "/link/strict-mode-string-ref", "destination": "https://legacy.reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs", "permanent": false }, { "source": "/link/perf-use-production-build", "destination": "https://legacy.reactjs.org/docs/optimizing-performance.html#use-the-production-build", "permanent": false }, { "source": "/link/unsafe-component-lifecycles", "destination": "https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html", "permanent": false }, { "source": "/link/test-utils-mock-component", "destination": "https://gist.github.com/bvaughn/fbf41b3f895bf2d297935faa5525eee9", "permanent": false }, { "source": "/link/attribute-behavior", "destination": "https://legacy.reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html#changes-in-detail", "permanent": false }, { "source": "/link/react-devtools-faq", "destination": "https://github.com/facebook/react/tree/main/packages/react-devtools#faq", "permanent": false }, { "source": "/link/setstate-in-render", "destination": "https://github.com/facebook/react/issues/18178#issuecomment-595846312", "permanent": false }, { "source": "/link/new-jsx-transform", "destination": "https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html", "permanent": false }, { "source": "/link/cra", "destination": "/blog/2025/02/14/sunsetting-create-react-app", "permanent": false }, { "source": "/warnings/version-mismatch", "destination": "/warnings/invalid-hook-call-warning#mismatching-versions-of-react-and-react-dom", "permanent": false }, { "source": "/reference/react/directives", "destination": "/reference/rsc/directives", "permanent": true }, { "source": "/reference/react/use-client", "destination": "/reference/rsc/use-client", "permanent": true }, { "source": "/reference/react/use-server", "destination": "/reference/rsc/use-server", "permanent": true }, { "source": "/reference/rsc/server-actions", "destination": "/reference/rsc/server-functions", "permanent": true }, { "source": "/reference/react-dom/findDOMNode", "destination": "https://18.react.dev/reference/react-dom/findDOMNode", "permanent": true }, { "source": "/reference/react/createFactory", "destination": "https://18.react.dev/reference/react/createFactory", "permanent": true }, { "source": "/reference/react-dom/render", "destination": "https://18.react.dev/reference/react-dom/render", "permanent": true }, { "source": "/reference/react-dom/hydrate", "destination": "https://18.react.dev/reference/react-dom/hydrate", "permanent": true }, { "source": "/reference/react-dom/unmountComponentAtNode", "destination": "https://18.react.dev/reference/react-dom/unmountComponentAtNode", "permanent": true }, { "source": "/reference/react-dom/server/renderToStaticNodeStream", "destination": "https://18.react.dev/reference/react-dom/server/renderToStaticNodeStream", "permanent": true }, { "source": "/reference/react-dom/server/renderToNodeStream", "destination": "https://18.react.dev/reference/react-dom/server/renderToNodeStream", "permanent": true }, { "source": "/learn/start-a-new-react-project", "destination": "/learn/creating-a-react-app", "permanent": true }, { "source": "/blog/2024/04/25/react-19", "destination": "/blog/2024/12/05/react-19", "permanent": true }, { "source": "/feed.xml", "destination": "/rss.xml", "permanent": true } ], "headers": [ { "source": "/fonts/(.*).woff2", "headers": [ { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } ] } ] }