- Treat same-origin absolute URLs in
<Link to>as external if they are outside of the routerbasename(#10135) - Fix
useBlockerto returnIDLE_BLOCKERduring SSR (#10046) - Fix SSR of absolute
<Link to>urls (#10112) - Properly escape HTML characters in
StaticRouterProviderserialized hydration data (#10068) - Updated dependencies:
@remix-run/router@1.3.3react-router@6.8.2
- Improved absolute url detection in
Linkcomponent (now also supportsmailto:urls) (#9994) - Fix partial object (search or hash only) pathnames losing current path value (#10029)
- Updated dependencies:
react-router@6.8.1@remix-run/router@1.3.2
-
Support absolute URLs in
<Link to>. If the URL is for the current origin, it will still do a client-side navigation. If the URL is for a different origin then it will do a fresh document request for the new origin. (#9900)<Link to="https://neworigin.com/some/path"> {/* Document request */} <Link to="//neworigin.com/some/path"> {/* Document request */} <Link to="https://www.currentorigin.com/path"> {/* Client-side navigation */}
- Fix bug with search params removal via
useSearchParams(#9969) - Respect
preventScrollReseton<fetcher.Form>(#9963) - Fix navigation for hash routers on manual URL changes (#9980)
- Use
pagehideinstead ofbeforeunloadfor<ScrollRestoration>. This has better cross-browser support, specifically on Mobile Safari. (#9945) - Updated dependencies:
@remix-run/router@1.3.1react-router@6.8.0
- Add
unstable_useBlockerhook for blocking navigations within the app's location origin (#9709) - Add
unstable_usePrompthook for blocking navigations within the app's location origin (#9932) - Add
preventScrollResetprop to<Form>(#9886)
- Added pass-through event listener options argument to
useBeforeUnload(#9709) - Streamline jsdom bug workaround in tests (#9824)
- Updated dependencies:
@remix-run/router@1.3.0react-router@6.7.0
- Ensure
useIdconsistency during SSR (#9805) - Updated dependencies:
react-router@6.6.2
- Updated dependencies:
@remix-run/router@1.2.1react-router@6.6.1
- Add
useBeforeUnload()hook (#9664) - Remove
unstable_prefix fromcreateStaticHandler/createStaticRouter/StaticRouterProvider(#9738)
- Proper hydration of
Errorobjects fromStaticRouterProvider(#9664) - Support uppercase
<Form method>anduseSubmitmethod values (#9664) - Skip initial scroll restoration for SSR apps with
hydrationData(#9664) - Fix
<button formmethod>form submission overriddes (#9664) - Updated dependencies:
@remix-run/router@1.2.0react-router@6.6.0
- Updated dependencies:
react-router@6.5.0@remix-run/router@1.1.0
- Updated dependencies:
@remix-run/router@1.0.5react-router@6.4.5
- Fix issues with encoded characters in
NavLinkand descendant<Routes>(#9589, #9647) - Properly serialize/deserialize
ErrorResponseinstances when using built-in hydration (#9593) - Support
basenamein static data routers (#9591) - Updated dependencies:
@remix-run/router@1.0.4react-router@6.4.4
- Fix hrefs generated for
createHashRouter(#9409) - fix encoding/matching issues with special chars (#9477, #9496)
- Properly support
indexroutes with apathinuseResolvedPath(#9486) - Respect
relative=pathprop onNavLink(#9453) - Fix
NavLinkbehavior for root urls (#9497) - Updated dependencies:
@remix-run/router@1.0.3react-router@6.4.3
- Respect
basenameinuseFormAction(#9352) - Enhance console error messages for invalid usage of data router hooks (#9311)
- If an index route has children, it will result in a runtime error. We have strengthened our
RouteObject/RoutePropstypes to surface the error in TypeScript. (#9366) - Updated dependencies:
react-router@6.4.2@remix-run/router@1.0.2
- Updated dependencies:
react-router@6.4.1@remix-run/router@1.0.1
Whoa this is a big one! 6.4.0 brings all the data loading and mutation APIs over from Remix. Here's a quick high level overview, but it's recommended you go check out the docs, especially the feature overview and the tutorial.
New APIs
- Create your router with
createMemoryRouter/createBrowserRouter/createHashRouter - Render your router with
<RouterProvider> - Load data with a Route
loaderand mutate with a Routeaction - Handle errors with Route
errorElement - Submit data with the new
<Form>component - Perform in-page data loads and mutations with
useFetcher() - Defer non-critical data with
deferandAwait - Manage scroll position with
<ScrollRestoration>
New Features
- Perform path-relative navigations with
<Link relative="path">(#9160)
Bug Fixes
- Path resolution is now trailing slash agnostic (#8861)
useLocationreturns the scoped location inside a<Routes location>component (#9094)- respect the
<Link replace>prop if it is defined (#8779)
Updated Dependencies
react-router@6.4.0