- Updated dependencies:
@remix-run/react@2.4.0-pre.10
@remix-run/node@2.4.0-pre.10
- Updated dependencies:
@remix-run/react@2.4.0-pre.9
@remix-run/node@2.4.0-pre.9
- Updated dependencies:
@remix-run/react@2.4.0-pre.8
@remix-run/node@2.4.0-pre.8
- Updated dependencies:
@remix-run/node@2.4.0-pre.7
@remix-run/react@2.4.0-pre.7
- Updated dependencies:
@remix-run/react@2.4.0-pre.6
@remix-run/node@2.4.0-pre.6
- Updated dependencies:
@remix-run/node@2.4.0-pre.5
@remix-run/react@2.4.0-pre.5
- Updated dependencies:
@remix-run/react@2.4.0-pre.4
@remix-run/node@2.4.0-pre.4
- Updated dependencies:
@remix-run/node@2.4.0-pre.3
@remix-run/react@2.4.0-pre.3
- Updated dependencies:
@remix-run/react@2.4.0-pre.2
@remix-run/node@2.4.0-pre.2
- Updated dependencies:
@remix-run/react@2.4.0-pre.1
@remix-run/node@2.4.0-pre.1
-
Add support for
clientLoader
/clientAction
/HydrateFallback
route exports (RFC). (#8173)Remix now supports loaders/actions that run on the client (in addition to, or instead of the loader/action that runs on the server). While we still recommend server loaders/actions for the majority of your data needs in a Remix app - these provide some levers you can pull for more advanced use-cases such as:
- Leveraging a data source local to the browser (i.e.,
localStorage
) - Managing a client-side cache of server data (like
IndexedDB
) - Bypassing the Remix server in a BFF setup and hitting your API directly from the browser
- Migrating a React Router SPA to a Remix application
By default,
clientLoader
will not run on hydration, and will only run on subsequent client side navigations.If you wish to run your client loader on hydration, you can set
clientLoader.hydrate=true
to force Remix to execute it on initial page load. Keep in mind that Remix will still SSR your route component so you should ensure that there is no new required data being added by yourclientLoader
.If your
clientLoader
needs to run on hydration and adds data you require to render the route component, you can export aHydrateFallback
component that will render during SSR, and then your route component will not render until theclientLoader
has executed on hydration.clientAction
is simpler thanclientLoader
because it has no hydration use-cases.clientAction
will only run on client-side navigations.For more information, please refer to the
clientLoader
andclientAction
documentation. - Leveraging a data source local to the browser (i.e.,
-
Add a new
future.v3_relativeSplatPath
flag to implement a breaking bug fix to relative routing when inside a splat route. For more information, please see the React Router6.21.0
Release Notes and theuseResolvedPath
docs. (#8216)
- Updated dependencies:
@remix-run/react@2.4.0-pre.0
@remix-run/node@2.4.0-pre.0
- Updated dependencies:
@remix-run/react@2.3.1
@remix-run/node@2.3.1
- Updated dependencies:
@remix-run/react@2.3.0
@remix-run/node@2.3.0
- Unstable Vite support for Node-based Remix apps (#7590)
remix build
👉vite build && vite build --ssr
remix dev
👉vite dev
- Other runtimes (e.g. Deno, Cloudflare) not yet supported.
- See "Future > Vite" in the Remix Docs for details
- Updated dependencies:
@remix-run/react@2.2.0
@remix-run/node@2.2.0
- Remove the
unstable_
prefix fromcreateRemixStub
- after real-world experience, we're confident in the API and ready to commit to it (#7647)- Note: This involves 1 small breaking change. The
<RemixStub remixConfigFuture>
prop has been renamed to<RemixStub future>
- Note: This involves 1 small breaking change. The
- Updated dependencies:
@remix-run/react@2.1.0
@remix-run/node@2.1.0
- Updated dependencies:
@remix-run/react@2.0.1
@remix-run/node@2.0.1
-
Drop React 17 support (#7121)
-
Require Node >=18.0.0 (#6939)
-
Remove
v2_normalizeFormMethod
future flag - allformMethod
values will be normalized in v2 (#6875) -
Remove
v2_routeConvention
flag - the flat route file convention is now standard (#6969) -
Remove
v2_headers
flag - it is now the default behavior to use the deepestheaders
function in the route tree (#6979) -
Remove
v2_errorBoundary
flag andCatchBoundary
implementation (#6906) -
The route
meta
API now defaults to the new "V2 Meta" API (#6958)- Please refer to the (docs and Preparing for V2 guide for more information.
-
Promote the
future.v2_dev
flag inremix.config.js
to a root leveldev
config (#7002) -
Removed support for "magic exports" from the
remix
package. This package can be removed from yourpackage.json
and you should update all imports to use the source@remix-run/*
packages: (#6895)- import type { ActionArgs } from "remix"; - import { json, useLoaderData } from "remix"; + import type { ActionArgs } from "@remix-run/node"; + import { json } from "@remix-run/node"; + import { useLoaderData } from "@remix-run/react";
unstable_createRemixStub
now supports addingmeta
/links
functions on stubbed Remix routes (#7186)⚠️ unstable_createRemixStub
no longer supports theelement
/errorElement
properties on routes. You must useComponent
/ErrorBoundary
to match what you would export from a Remix route module.
- Update Remix to use React Router
route.lazy
for module loading (#7133)
- Fix types for
StubRouteObject
children
property (#7098) - Updated dependencies:
@remix-run/react@2.0.0
@remix-run/node@2.0.0
react-router-dom@6.16.0
@remix-run/router@1.9.0
- Updated dependencies:
@remix-run/node@1.19.3
@remix-run/react@1.19.3
- Updated dependencies:
@remix-run/node@1.19.2
@remix-run/react@1.19.2
- Updated dependencies:
@remix-run/node@1.19.1
@remix-run/react@1.19.1
- Bump RR 6.14.2 (#6854)
- Updated dependencies:
@remix-run/react@1.19.0
@remix-run/node@1.19.0
react-router-dom@6.14.2
@remix-run/router@1.7.2
- Updated dependencies:
@remix-run/react@1.18.1
@remix-run/node@1.18.1
react-router-dom@6.14.1
@remix-run/router@1.7.1
- stabilize v2 dev server (#6615)
- Updated dependencies:
@remix-run/react@1.18.0
@remix-run/node@1.18.0
- Updated dependencies:
react-router-dom@6.13.0
@remix-run/react@1.17.1
@remix-run/node@1.17.1
- Updated dependencies:
@remix-run/react@1.17.0
@remix-run/node@1.17.0
react-router-dom@6.12.0
@remix-run/router@1.6.3
- Updated dependencies:
@remix-run/react@1.16.1
@remix-run/node@1.16.1
-
Enable support for CSS Modules, Vanilla Extract and CSS side-effect imports (#6046)
These CSS bundling features were previously only available via
future.unstable_cssModules
,future.unstable_vanillaExtract
andfuture.unstable_cssSideEffectImports
options inremix.config.js
, but they have now been stabilized.In order to use these features, check out our guide to CSS bundling in your project.
- feat(remix-testing): cast types to use Remix type definitions + allow passing context (#6065)
- Updated dependencies:
react-router-dom@6.11.0
@remix-run/router@1.6.0
@remix-run/react@1.16.0
@remix-run/node@1.16.0
- Bumped React Router dependencies to the latest version. See the release notes for more details. (
e14699547
) - Updated dependencies:
@remix-run/react@1.15.0
@remix-run/node@1.15.0
- Updated dependencies:
@remix-run/node@1.14.3
@remix-run/react@1.14.3
- Updated dependencies:
@remix-run/node@1.14.2
@remix-run/react@1.14.2
- Updated dependencies:
@remix-run/react@1.14.1
@remix-run/node@1.14.1
- Updated dependencies:
@remix-run/react@1.14.0
@remix-run/node@1.14.0
@remix-run/router@1.3.3
react-router-dom@8.6.2
- Add built-in support for PostCSS via the
future.unstable_postcss
feature flag (#5229) - Add built-in support for Tailwind via the
future.unstable_tailwind
feature flag (#5229)
- Bump React Router dependencies to the latest version. See the release notes for more details. (#5389)
- Updated dependencies:
@remix-run/react@1.13.0
@remix-run/node@1.13.0
- Ensure all routes have IDs when using the
createRemixStub
testing helper (#5128) - Bump React Router dependencies to the latest version. See the release notes for more details. (#5242)
- Updated dependencies:
@remix-run/react@1.12.0
@remix-run/node@1.12.0
- Updated dependencies:
@remix-run/node@1.11.1
@remix-run/react@1.11.1
- Added support for Vanilla Extract via the
unstable_vanillaExtract
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#5040) - Add support for CSS side-effect imports via the
unstable_cssSideEffectImports
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#4919) - Add support for CSS Modules via the
unstable_cssModules
future flag. IMPORTANT: Features marked withunstable
are … unstable. While we're confident in the use cases they solve, the API and implementation may change without a major version bump. (#4852)
-
Introduces the
defer()
API from@remix-run/router
with support for server-rendering and HTTP streaming. This utility allows you to defer values returned fromloader
functions by returning promises instead of resolved values. This has been refered to as "sending a promise over the wire". (#4920)Informational Resources:
- https://gist.github.com/jacob-ebey/9bde9546c1aafaa6bc8c242054b1be26
- https://github.com/remix-run/remix/blob/main/decisions/0004-streaming-apis.md
Documentation Resources (better docs specific to Remix are in the works):
-
Updated dependencies:
@remix-run/react@1.11.0
@remix-run/node@1.11.0
- Updated dependencies:
@remix-run/react@1.10.1
@remix-run/node@1.10.1
- Remove internal
installGlobals
function now that@remix-run/web-form-data
includes support for passing aHTMLFormElement
(#4755) - Use React Router data APIs directly (#4915)
- Updated dependencies:
@remix-run/react@1.10.0
@remix-run/node@1.10.0
- Updated dependencies:
@remix-run/react@1.9.0
@remix-run/server-runtime@1.9.0
@remix-run/node@1.9.0