|
@ -5,173 +5,233 @@ |
|
|
"trailingSlash": false, |
|
|
"trailingSlash": false, |
|
|
"redirects": [ |
|
|
"redirects": [ |
|
|
{ |
|
|
{ |
|
|
"source": "/:path*(\\.html)", |
|
|
"source": "/docs/add-react-to-a-website.html", |
|
|
"destination": "https://legacy.reactjs.org/:path*.html", |
|
|
"destination": "/learn/add-react-to-a-website", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/tips/controlled-input-null-value.html", |
|
|
"source": "/docs/create-a-new-react-app.html", |
|
|
"destination": "/docs/forms.html#controlled-input-null-value", |
|
|
"destination": "/learn/start-a-new-react-project", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/switch-to-createroot", |
|
|
"source": "/docs/release-channels.html", |
|
|
"destination": "https://github.com/reactwg/react-18/discussions/5", |
|
|
"destination": "/community/versioning-policy", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/server-components", |
|
|
"source": "/docs/thinking-in-react.html", |
|
|
"destination": "/blog/2020/12/21/data-fetching-with-react-server-components.html", |
|
|
"destination": "/learn/thinking-in-react", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/concurrent", |
|
|
"source": "/tutorial/tutorial.html", |
|
|
"destination": "/docs/concurrent-mode-intro.html", |
|
|
"destination": "/learn/tutorial-tic-tac-toe", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/hooks", |
|
|
"source": "/community/support.html", |
|
|
"destination": "/docs/hooks-intro.html", |
|
|
"destination": "/community", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/tutorial", |
|
|
"source": "/community/conferences.html", |
|
|
"destination": "/tutorial/tutorial.html", |
|
|
"destination": "/community/conferences", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/community/meetups.html", |
|
|
|
|
|
"destination": "/community/meetups", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/community/team.html", |
|
|
|
|
|
"destination": "/community/team", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/community/videos.html", |
|
|
|
|
|
"destination": "/community/videos", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022.html", |
|
|
|
|
|
"destination": "/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/blog/2022/03/29/react-v18.html", |
|
|
|
|
|
"destination": "/blog/2022/03/29/react-v18", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/blog/2022/03/08/react-18-upgrade-guide.html", |
|
|
|
|
|
"destination": "/blog/2022/03/08/react-18-upgrade-guide", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/blog/2021/12/17/react-conf-2021-recap.html", |
|
|
|
|
|
"destination": "/blog/2021/12/17/react-conf-2021-recap", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/your-story", |
|
|
"source": "/blog/2021/06/08/the-plan-for-react-18.html", |
|
|
"destination": "https://www.surveymonkey.co.uk/r/MVQV2R9", |
|
|
"destination": "/blog/2021/06/08/the-plan-for-react-18", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/stories", |
|
|
"source": "/blog/2020/12/21/data-fetching-with-react-server-components.html", |
|
|
"destination": "https://medium.com/react-community-stories", |
|
|
"destination": "/blog/2020/12/21/data-fetching-with-react-server-components", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/html-jsx.html", |
|
|
"source": "/:path*(\\.html)", |
|
|
"destination": "", |
|
|
"destination": "https://legacy.reactjs.org/:path*.html", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/tips/controlled-input-null-value.html", |
|
|
|
|
|
"destination": "/reference/react-dom/components/input#im-getting-an-error-a-component-is-changing-an-uncontrolled-input-to-be-controlled", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/link/switch-to-createroot", |
|
|
|
|
|
"destination": "https://github.com/reactwg/react-18/discussions/5", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/server-components", |
|
|
|
|
|
"destination": "/blog/2020/12/21/data-fetching-with-react-server-components", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/concurrent", |
|
|
|
|
|
"destination": "/blog/2022/03/29/react-v18", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/hooks", |
|
|
|
|
|
"destination": "/reference/react", |
|
|
|
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/tutorial", |
|
|
|
|
|
"destination": "/learn/tutorial-tic-tac-toe", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/attribute-behavior", |
|
|
"source": "/link/attribute-behavior", |
|
|
"destination": "/blog/2017/09/08/dom-attributes-in-react-16.html#changes-in-detail", |
|
|
"destination": "https://legacy.reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html#changes-in-detail", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/controlled-components", |
|
|
"source": "/link/controlled-components", |
|
|
"destination": "/docs/forms.html#controlled-components", |
|
|
"destination": "/reference/react-dom/components/input#controlling-an-input-with-a-state-variable", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/crossorigin-error", |
|
|
"source": "/link/crossorigin-error", |
|
|
"destination": "/docs/cross-origin-errors.html", |
|
|
"destination": "https://legacy.reactjs.org/docs/cross-origin-errors.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/dangerously-set-inner-html", |
|
|
"source": "/link/dangerously-set-inner-html", |
|
|
"destination": "/docs/dom-elements.html#dangerouslysetinnerhtml", |
|
|
"destination": "/reference/react-dom/components/common#dangerously-setting-the-inner-html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/derived-state", |
|
|
"source": "/link/derived-state", |
|
|
"destination": "/blog/2018/06/07/you-probably-dont-need-derived-state.html", |
|
|
"destination": "https://legacy.reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/error-boundaries", |
|
|
"source": "/link/error-boundaries", |
|
|
"destination": "/docs/error-boundaries.html", |
|
|
"destination": "https://legacy.reactjs.org/docs/error-boundaries.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/event-pooling", |
|
|
"source": "/link/event-pooling", |
|
|
"destination": "/docs/legacy-event-pooling.html", |
|
|
"destination": "https://legacy.reactjs.org/docs/legacy-event-pooling.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/hooks-data-fetching", |
|
|
"source": "/link/hooks-data-fetching", |
|
|
"destination": "/docs/hooks-faq.html#how-can-i-do-data-fetching-with-hooks", |
|
|
"destination": "/reference/react/useEffect#fetching-data-with-effects", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/invalid-aria-props", |
|
|
"source": "/link/invalid-aria-props", |
|
|
"destination": "/warnings/invalid-aria-prop.html", |
|
|
"destination": "/warnings/invalid-aria-prop", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/invalid-hook-call", |
|
|
"source": "/link/invalid-hook-call", |
|
|
"destination": "/warnings/invalid-hook-call-warning.html", |
|
|
"destination": "/warnings/invalid-hook-call-warning", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/legacy-context", |
|
|
"source": "/link/legacy-context", |
|
|
"destination": "/docs/legacy-context.html", |
|
|
"destination": "https://legacy.reactjs.org/docs/legacy-context.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/legacy-factories", |
|
|
"source": "/link/legacy-factories", |
|
|
"destination": "/warnings/legacy-factories.html", |
|
|
"destination": "https://legacy.reactjs.org/warnings/legacy-factories.html", |
|
|
"permanent": false |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
"source": "/link/mock-scheduler", |
|
|
|
|
|
"destination": "", |
|
|
|
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/perf-use-production-build", |
|
|
"source": "/link/perf-use-production-build", |
|
|
"destination": "/docs/optimizing-performance.html#use-the-production-build", |
|
|
"destination": "https://legacy.reactjs.org/docs/optimizing-performance.html#use-the-production-build", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/react-devtools", |
|
|
"source": "/link/react-devtools", |
|
|
"destination": "/blog/2015/09/02/new-react-developer-tools.html#installation", |
|
|
"destination": "/learn/react-developer-tools", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/react-polyfills", |
|
|
"source": "/link/react-polyfills", |
|
|
"destination": "/docs/javascript-environment-requirements.html", |
|
|
"destination": "https://legacy.reactjs.org/docs/javascript-environment-requirements.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/refs-must-have-owner", |
|
|
"source": "/link/refs-must-have-owner", |
|
|
"destination": "/warnings/refs-must-have-owner.html", |
|
|
"destination": "https://legacy.reactjs.org/warnings/refs-must-have-owner.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/rules-of-hooks", |
|
|
"source": "/link/rules-of-hooks", |
|
|
"destination": "/docs/hooks-rules.html", |
|
|
"destination": "/warnings/invalid-hook-call-warning", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/special-props", |
|
|
"source": "/link/special-props", |
|
|
"destination": "/warnings/special-props.html", |
|
|
"destination": "/warnings/special-props", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/strict-mode-find-node", |
|
|
"source": "/link/strict-mode-find-node", |
|
|
"destination": "/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage", |
|
|
"destination": "/reference/react-dom/findDOMNode#alternatives", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/strict-mode-string-ref", |
|
|
"source": "/link/strict-mode-string-ref", |
|
|
"destination": "/docs/refs-and-the-dom.html#legacy-api-string-refs", |
|
|
"destination": "https://legacy.reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/unsafe-component-lifecycles", |
|
|
"source": "/link/unsafe-component-lifecycles", |
|
|
"destination": "/blog/2018/03/27/update-on-async-rendering.html", |
|
|
"destination": "https://legacy.reactjs.org/blog/2018/03/27/update-on-async-rendering.html", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/warning-keys", |
|
|
"source": "/link/warning-keys", |
|
|
"destination": "/docs/lists-and-keys.html#keys", |
|
|
"destination": "/learn/rendering-lists#keeping-list-items-in-order-with-key", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
"source": "/link/wrap-tests-with-act", |
|
|
"source": "/link/wrap-tests-with-act", |
|
|
"destination": "/docs/test-utils.html#act", |
|
|
"destination": "https://legacy.reactjs.org/docs/test-utils.html#act", |
|
|
"permanent": false |
|
|
"permanent": false |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|