|
28 | 28 |
|
29 | 29 | | URL `/a/b/c` | **HTTP pathname** | **`request` pathname\`** | |
30 | 30 | | ------------ | ----------------- | ------------------------ | |
31 | | - | **Document** | `/a/b/c` | `/a/b/c` ✅ | |
32 | | - | **Data** | `/a/b/c.data` | `/a/b/c` ✅ | |
| 31 | + | **Document** | `/a/b/c` | `/a/b/c` ✅ | |
| 32 | + | **Data** | `/a/b/c.data` | `/a/b/c` ✅ | |
33 | 33 |
|
34 | 34 | | URL `/a/b/c/` | **HTTP pathname** | **`request` pathname\`** | |
35 | 35 | | ------------- | ----------------- | ------------------------ | |
36 | | - | **Document** | `/a/b/c/` | `/a/b/c/` ✅ | |
| 36 | + | **Document** | `/a/b/c/` | `/a/b/c/` ✅ | |
37 | 37 | | **Data** | `/a/b/c.data` | `/a/b/c` ⚠️ | |
38 | 38 |
|
39 | 39 | With this flag enabled, these pathnames will be made consistent though a new `_.data` format for client-side `.data` requests: |
40 | 40 |
|
41 | 41 | | URL `/a/b/c` | **HTTP pathname** | **`request` pathname\`** | |
42 | 42 | | ------------ | ----------------- | ------------------------ | |
43 | | - | **Document** | `/a/b/c` | `/a/b/c` ✅ | |
44 | | - | **Data** | `/a/b/c.data` | `/a/b/c` ✅ | |
| 43 | + | **Document** | `/a/b/c` | `/a/b/c` ✅ | |
| 44 | + | **Data** | `/a/b/c.data` | `/a/b/c` ✅ | |
45 | 45 |
|
46 | 46 | | URL `/a/b/c/` | **HTTP pathname** | **`request` pathname\`** | |
47 | 47 | | ------------- | ------------------ | ------------------------ | |
48 | | - | **Document** | `/a/b/c/` | `/a/b/c/` ✅ | |
49 | | - | **Data** | `/a/b/c/_.data` ⬅️ | `/a/b/c/` ✅ | |
| 48 | + | **Document** | `/a/b/c/` | `/a/b/c/` ✅ | |
| 49 | + | **Data** | `/a/b/c/_.data` ⬅️ | `/a/b/c/` ✅ | |
50 | 50 |
|
51 | 51 | This a bug fix but we are putting it behind an opt-in flag because it has the potential to be a "breaking bug fix" if you are relying on the URL format for any other application or caching logic. |
52 | 52 |
|
|
304 | 304 | - Stabilize middleware and context APIs. ([#14215](https://github.com/remix-run/react-router/pull/14215)) |
305 | 305 |
|
306 | 306 | We have removed the `unstable_` prefix from the following APIs and they are now considered stable and ready for production use: |
307 | | - |
308 | 307 | - [`RouterContextProvider`](https://reactrouter.com/api/utils/RouterContextProvider) |
309 | 308 | - [`createContext`](https://reactrouter.com/api/utils/createContext) |
310 | 309 | - `createBrowserRouter` [`getContext`](https://reactrouter.com/api/data-routers/createBrowserRouter#optsgetcontext) option |
|
1047 | 1046 | ``` |
1048 | 1047 |
|
1049 | 1048 | This initial implementation targets type inference for: |
1050 | | -
|
1051 | 1049 | - `Params` : Path parameters from your routing config in `routes.ts` including file-based routing |
1052 | 1050 | - `LoaderData` : Loader data from `loader` and/or `clientLoader` within your route module |
1053 | 1051 | - `ActionData` : Action data from `action` and/or `clientAction` within your route module |
|
1062 | 1060 | ``` |
1063 | 1061 |
|
1064 | 1062 | Check out our docs for more: |
1065 | | -
|
1066 | 1063 | - [_Explanations > Type Safety_](https://reactrouter.com/dev/guides/explanation/type-safety) |
1067 | 1064 | - [_How-To > Setting up type safety_](https://reactrouter.com/dev/guides/how-to/setting-up-type-safety) |
1068 | 1065 |
|
|
1262 | 1259 | - Vite: Provide `Unstable_ServerBundlesFunction` and `Unstable_VitePluginConfig` types ([#8654](https://github.com/remix-run/remix/pull/8654)) |
1263 | 1260 |
|
1264 | 1261 | - Vite: add `--sourcemapClient` and `--sourcemapServer` flags to `remix vite:build` ([#8613](https://github.com/remix-run/remix/pull/8613)) |
1265 | | -
|
1266 | 1262 | - `--sourcemapClient` |
1267 | 1263 |
|
1268 | 1264 | - `--sourcemapClient=inline` |
|
1599 | 1595 | - Add support for `clientLoader`/`clientAction`/`HydrateFallback` route exports ([RFC](https://github.com/remix-run/remix/discussions/7634)) ([#8173](https://github.com/remix-run/remix/pull/8173)) |
1600 | 1596 |
|
1601 | 1597 | 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: |
1602 | | -
|
1603 | 1598 | - Leveraging a data source local to the browser (i.e., `localStorage`) |
1604 | 1599 | - Managing a client-side cache of server data (like `IndexedDB`) |
1605 | 1600 | - Bypassing the Remix server in a BFF setup and hitting your API directly from the browser |
|
2003 | 1998 | - Output esbuild metafiles for bundle analysis ([#6772](https://github.com/remix-run/remix/pull/6772)) |
2004 | 1999 |
|
2005 | 2000 | Written to server build directory (`build/` by default): |
2006 | | -
|
2007 | 2001 | - `metafile.css.json` |
2008 | 2002 | - `metafile.js.json` (browser JS) |
2009 | 2003 | - `metafile.server.json` (server JS) |
|
2101 | 2095 | - built-in tls support ([#6483](https://github.com/remix-run/remix/pull/6483)) |
2102 | 2096 |
|
2103 | 2097 | New options: |
2104 | | -
|
2105 | 2098 | - `--tls-key` / `tlsKey`: TLS key |
2106 | 2099 | - `--tls-cert` / `tlsCert`: TLS Certificate |
2107 | 2100 |
|
|
2372 | 2365 | ``` |
2373 | 2366 |
|
2374 | 2367 | The dev server will: |
2375 | | -
|
2376 | 2368 | - force `NODE_ENV=development` and warn you if it was previously set to something else |
2377 | 2369 | - rebuild your app whenever your Remix app code changes |
2378 | 2370 | - restart your app server whenever rebuilds succeed |
|
0 commit comments