7.7 KiB
@remix-run/router
1.2.1
Patch Changes
- Include submission info in
shouldRevalidateon action redirects (#9777, #9782) - Reset
actionDataon action redirect to current location (#9772)
1.2.0
Minor Changes
- Remove
unstable_prefix fromcreateStaticHandler/createStaticRouter/StaticRouterProvider(#9738)
Patch Changes
- Fix explicit
replaceon submissions andPUSHon submission to new paths (#9734) - Fix a few bugs where loader/action data wasn't properly cleared on errors (#9735)
- Prevent
useLoaderDatausage inerrorElement(#9735) - Skip initial scroll restoration for SSR apps with
hydrationData(#9664)
1.1.0
This release introduces support for Optional Route Segments. Now, adding a ? to the end of any path segment will make that entire segment optional. This works for both static segments and dynamic parameters.
Optional Params Examples
- Path
lang?/aboutwill match:/:lang/about/about
- Path
/multistep/:widget1?/widget2?/widget3?will match:/multistep/multistep/:widget1/multistep/:widget1/:widget2/multistep/:widget1/:widget2/:widget3
Optional Static Segment Example
- Path
/home?will match://home
- Path
/fr?/aboutwill match:/about/fr/about
Minor Changes
- Allows optional routes and optional static segments (#9650)
Patch Changes
- Stop incorrectly matching on partial named parameters, i.e.
<Route path="prefix-:param">, to align with how splat parameters work. If you were previously relying on this behavior then it's recommended to extract the static portion of the path at theuseParamscall site: (#9506)
// Old behavior at URL /prefix-123
<Route path="prefix-:id" element={<Comp /> }>
function Comp() {
let params = useParams(); // { id: '123' }
let id = params.id; // "123"
...
}
// New behavior at URL /prefix-123
<Route path=":id" element={<Comp /> }>
function Comp() {
let params = useParams(); // { id: 'prefix-123' }
let id = params.id.replace(/^prefix-/, ''); // "123"
...
}
- Persist
headersonloaderrequest's after SSR documentactionrequest (#9721) - Fix requests sent to revalidating loaders so they reflect a GET request (#9660)
- Fix issue with deeply nested optional segments (#9727)
- GET forms now expose a submission on the loading navigation (#9695)
- Fix error boundary tracking for multiple errors bubbling to the same boundary (#9702)
1.0.5
Patch Changes
- Fix requests sent to revalidating loaders so they reflect a
GETrequest (#9680) - Remove
instanceof Responsechecks in favor ofisResponse(#9690) - Fix
URLcreation in Cloudflare Pages or other non-browser-environments (#9682, #9689) - Add
requestContextsupport to static handlerquery/queryRoute(#9696)- Note that the unstable API of
queryRoute(path, routeId)has been changed toqueryRoute(path, { routeId, requestContext })
- Note that the unstable API of
1.0.4
Patch Changes
- Throw an error if an
action/loaderfunction returnsundefinedas revalidations need to know whether the loader has previously been executed.undefinedalso causes issues during SSR stringification for hydration. You should always ensure youloader/actionreturns a value, and you may returnnullif you don't wish to return anything. (#9511) - Properly handle redirects to external domains (#9590, #9654)
- Preserve the HTTP method on 307/308 redirects (#9597)
- Support
basenamein static data routers (#9591) - Enhanced
ErrorResponsebodies to contain more descriptive text in internal 403/404/405 scenarios
1.0.3
Patch Changes
- Fix hrefs generated when using
createHashRouter(#9409) - fix encoding/matching issues with special chars (#9477, #9496)
- Support
basenameand relative routing inloader/actionredirects (#9447) - Ignore pathless layout routes when looking for proper submission
actionfunction (#9455) - properly support
indexroutes with apathinuseResolvedPath(#9486) - Add UMD build for
@remix-run/router(#9446) - fix
createURLin local file execution in Firefox (#9464) - Updates to
unstable_createStaticHandlerfor incorporating into Remix (#9482, #9465)
1.0.2
Patch Changes
- Reset
actionDataafter a successful action redirect (#9334) - Update
matchPathto avoid false positives on dash-separated segments (#9300) - 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)
1.0.1
Patch Changes
- Preserve state from
initialEntries(#9288) - Preserve
?indexfor fetcher get submissions to index routes (#9312)
1.0.0
This is the first stable release of @remix-run/router, which provides all the underlying routing and data loading/mutation logic for react-router. You should not be using this package directly unless you are authoring a routing library similar to react-router.
For an overview of the features provided by react-router, we recommend you go check out the docs, especially the feature overview and the tutorial.
For an overview of the features provided by @remix-run/router, please check out the README.