Skip to content

Commit 672c424

Browse files
authored
Merge pull request #467 from reactjs/sync-e85b71de
Sync with react.dev @ e85b71d
2 parents 2840264 + c8c3608 commit 672c424

22 files changed

+424
-46
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"next-remote-watch": "^1.0.0",
3737
"parse-numeric-range": "^1.2.0",
3838
"react": "^0.0.0-experimental-16d053d59-20230506",
39-
"react-collapsed": "npm:@gaearon/[email protected]",
39+
"react-collapsed": "4.0.4",
4040
"react-dom": "^0.0.0-experimental-16d053d59-20230506",
4141
"remark-frontmatter": "^4.0.1",
4242
"remark-gfm": "^3.0.1"

src/components/Layout/Sidebar/SidebarRouteTree.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {useRef, useLayoutEffect, Fragment} from 'react';
77
import cn from 'classnames';
88
import {useRouter} from 'next/router';
99
import {SidebarLink} from './SidebarLink';
10-
import useCollapse from 'react-collapsed';
10+
import {useCollapse} from 'react-collapsed';
1111
import usePendingRoute from 'hooks/usePendingRoute';
1212
import type {RouteItem} from 'components/Layout/getRouteMeta';
1313

src/components/Seo.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const deployedTranslations = [
2222
'zh-hans',
2323
'es',
2424
'fr',
25+
'ja',
2526
// We'll add more languages when they have enough content.
2627
// Please DO NOT edit this list without a discussion in the reactjs/react.dev repo.
2728
// It must be the same between all translations.

src/content/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ June 15, 2022 by [Andrew Clark](https://twitter.com/acdlite), [Dan Abramov](http
88

99
<Intro>
1010

11-
[React 18](https://reactjs.org/blog/2022/03/29/react-v18) was years in the making, and with it brought valuable lessons for the React team. Its release was the result of many years of research and exploring many paths. Some of those paths were successful; many more were dead-ends that led to new insights. One lesson we’ve learned is that it’s frustrating for the community to wait for new features without having insight into these paths that we’re exploring.
11+
[React 18](https://react.dev/blog/2022/03/29/react-v18) was years in the making, and with it brought valuable lessons for the React team. Its release was the result of many years of research and exploring many paths. Some of those paths were successful; many more were dead-ends that led to new insights. One lesson we’ve learned is that it’s frustrating for the community to wait for new features without having insight into these paths that we’re exploring.
1212

1313
</Intro>
1414

src/content/community/conferences.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ October 27th 2023. In-person in Verona, Italy and online (hybrid event)
5555

5656
[Website](https://2023.reactjsday.it/) - [Twitter](https://twitter.com/reactjsday) - [Facebook](https://www.facebook.com/GrUSP/) - [YouTube](https://www.youtube.com/c/grusp)
5757

58-
5958
### React Summit US 2023 {/*react-summit-us-2023*/}
6059
November 13 & 15, 2023. In-person in New York, US + remote first interactivity (hybrid event)
6160

@@ -66,6 +65,11 @@ December 8 & 12, 2023. In-person in Berlin, Germany + remote first interactivity
6665

6766
[Website](https://reactday.berlin) - [Twitter](https://twitter.com/reactdayberlin) - [Facebook](https://www.facebook.com/reactdayberlin/) - [Videos](https://portal.gitnation.org/events/react-day-berlin-2023)
6867

68+
### App.js Conf 2024 {/*appjs-conf-2024*/}
69+
May 22 - 24, 2024. In-person in Kraków, Poland + remote
70+
71+
[Website](https://appjs.co) - [Twitter](https://twitter.com/appjsconf)
72+
6973
### Render(ATL) 2024 🍑 {/*renderatl-2024-*/}
7074
June 12 - June 14, 2024. Atlanta, GA, USA
7175

src/content/learn/referencing-values-with-refs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ You also don't need to worry about [avoiding mutation](/learn/updating-objects-i
284284

285285
## Refs and the DOM {/*refs-and-the-dom*/}
286286

287-
You can point a ref to any value. However, the most common use case for a ref is to access a DOM element. For example, this is handy if you want to focus an input programmatically. When you pass a ref to a `ref` attribute in JSX, like `<div ref={myRef}>`, React will put the corresponding DOM element into `myRef.current`. You can read more about this in [Manipulating the DOM with Refs.](/learn/manipulating-the-dom-with-refs)
287+
You can point a ref to any value. However, the most common use case for a ref is to access a DOM element. For example, this is handy if you want to focus an input programmatically. When you pass a ref to a `ref` attribute in JSX, like `<div ref={myRef}>`, React will put the corresponding DOM element into `myRef.current`. Once the element is removed from the DOM, React will update `myRef.current` to be `null`. You can read more about this in [Manipulating the DOM with Refs.](/learn/manipulating-the-dom-with-refs)
288288

289289
<Recap>
290290

src/content/learn/rendering-lists.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ const people = [{
114114
profession: 'physicist',
115115
}, {
116116
name: 'Percy Lavon Julian',
117-
profession: 'chemist',
117+
profession: 'chemist',
118118
}, {
119119
name: 'Subrahmanyan Chandrasekhar',
120120
profession: 'astrophysicist',
@@ -230,9 +230,9 @@ export function getImageUrl(person) {
230230

231231
```css
232232
ul { list-style-type: none; padding: 0px 10px; }
233-
li {
234-
margin-bottom: 10px;
235-
display: grid;
233+
li {
234+
margin-bottom: 10px;
235+
display: grid;
236236
grid-template-columns: auto 1fr;
237237
gap: 20px;
238238
align-items: center;
@@ -360,9 +360,9 @@ export function getImageUrl(person) {
360360

361361
```css
362362
ul { list-style-type: none; padding: 0px 10px; }
363-
li {
364-
margin-bottom: 10px;
365-
display: grid;
363+
li {
364+
margin-bottom: 10px;
365+
display: grid;
366366
grid-template-columns: auto 1fr;
367367
gap: 20px;
368368
align-items: center;
@@ -411,7 +411,7 @@ Diverse fonti di dati forniscono diverse fonti di key:
411411

412412
### Perchè React ha bisogno delle key? {/*why-does-react-need-keys*/}
413413

414-
Immagina se i file sul tuo desktop non avessero nomi. Al contrario, ti riferiresti a loro in base al loro ordine: il primo file, il secondo file e così via. Potresti abituarti, ma una volta eliminato un file, sarebbe confuso. Il secondo file diventerebbe il primo file, il terzo file sarebbe il secondo file e così via.
414+
Immagina se i file sul tuo desktop non avessero nomi. Al contrario, ti riferiresti a loro in base al loro ordine: il primo file, il secondo file e così via. Potresti abituarti, ma una volta eliminato un file, sarebbe confuso. Il secondo file diventerebbe il primo file, il terzo file sarebbe il secondo file e così via.
415415

416416
I nomi dei file in una cartella e le key JSX in un array servono a uno scopo simile. Ci consentono di identificare univocamente un elemento tra i suoi simili. Una key ben scelta fornisce più informazioni rispetto alla posizione all'interno dell'array. Anche se la _posizione_ cambia a causa del riordinamento, la `key` consente a React di identificare l'elemento per tutta la sua durata.
417417

@@ -1087,7 +1087,7 @@ In questo caso, `<Recipe {...recipe} key={recipe.id} />` è una shortcut sintatt
10871087

10881088
#### Lista con un separatore {/*list-with-a-separator*/}
10891089

1090-
Questo esempio renderizza un famoso haiku di Katsushika Hokusai, con ogni riga avvolta in un tag `<p>`. Il tuo compito è inserire un separatore `<hr />` tra ogni paragrafo. La tua struttura risultante dovrebbe assomigliare a questa:
1090+
Questo esempio renderizza un famoso haiku di Tachibana Hokushi, con ogni riga avvolta in un tag `<p>`. Il tuo compito è inserire un separatore `<hr />` tra ogni paragrafo. La tua struttura risultante dovrebbe assomigliare a questa:
10911091

10921092
```js
10931093
<article>

src/content/learn/start-a-new-react-project.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ Se vuoi costruire una nuova app o un nuovo sito web interamente con React, ti co
2121
**[Next.js](https://nextjs.org/) è un framework React full-stack.** È versatile e ti consente di creare app React di qualsiasi dimensione, da un blog principalmente statico a un'applicazione dinamica complessa. Per creare un nuovo progetto Next.js, esegui il seguente comando nel tuo terminale:
2222

2323
<TerminalBlock>
24-
npx create-next-app
24+
npx create-next-app@latest
2525
</TerminalBlock>
2626

2727
Se sei nuovo in Next.js, dai un'occhiata al [tutorial di Next.js.](https://nextjs.org/learn/foundations/about-nextjs)
2828

29-
Next.js è mantenuto da [Vercel](https://vercel.com/). Puoi [distribuire un'app Next.js](https://nextjs.org/docs/deployment) su qualsiasi hosting Node.js o serverless, o sul tuo server personale. [Le app Next.js completamente statiche](https://nextjs.org/docs/advanced-features/static-html-export) possono essere distribuite su qualsiasi hosting statico.
29+
Next.js è mantenuto da [Vercel](https://vercel.com/). Puoi [distribuire un'app Next.js](https://nextjs.org/docs/app/building-your-application/deploying) su qualsiasi hosting Node.js o serverless, o sul tuo server personale. [Le app Next.js completamente statiche](https://nextjs.org/docs/advanced-features/static-html-export) possono essere distribuite su qualsiasi hosting statico.
3030

3131
### Remix {/*remix*/}
3232

@@ -92,11 +92,6 @@ Queste funzionalità stanno diventando sempre più vicine alla prontezza per la
9292
**[Il router dell'app di Next.js's](https://beta.nextjs.org/docs/getting-started) è una ridisegnazione delle API di Next.js che mira a realizzare la visione di architettura full-stack del team di React.** Consente di recuperare dati in componenti asincroni che vengono eseguiti sul server o addirittura durante la fase di build.
9393

9494
Next.js è mantenuto da [Vercel](https://vercel.com/). Puoi [distribuire un'app Next.js](https://nextjs.org/docs/deployment) su qualsiasi hosting Node.js o serverless, o sul tuo server. Next.js supporta anche [l'esportazione statica](https://beta.nextjs.org/docs/configuring/static-export) che non richiede un server.
95-
<Pitfall>
96-
97-
Il router dell'app di Next.js è **attualmente in fase beta e non è ancora consigliato per la produzione** (al marzo 2023). Per sperimentarlo in un progetto Next.js esistente, [segui questa guida di migrazione incrementale.](https://beta.nextjs.org/docs/upgrade-guide#migrating-from-pages-to-app).
98-
99-
</Pitfall>
10095

10196
<DeepDive>
10297

src/content/learn/tutorial-tic-tac-toe.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2073,7 +2073,13 @@ export default function Game() {
20732073
}
20742074
```
20752075
2076-
Puoi vedere come dovrebbe apparire il tuo codice qui sotto. Nota che dovresti vedere un errore nella console degli strumenti di sviluppo che dice: ``Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of `Game`.`` Risolverai questo errore nella prossima sezione.
2076+
Puoi vedere come dovrebbe apparire il tuo codice qui sotto. Nota che dovresti vedere un errore nella console degli strumenti di sviluppo che dice:
2077+
2078+
<ConsoleBlock level="warning">
2079+
Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of &#96;Game&#96;.
2080+
</ConsoleBlock>
2081+
2082+
Risolverai questo errore nella prossima sezione.
20772083
20782084
<Sandpack>
20792085

src/content/learn/typescript.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ export default App = AppTSX;
284284

285285
</Sandpack>
286286

287-
This technique works when you have an default value which makes sense - but there are occasionally cases when you do not, and in those cases `null` can feel reasonable as a default value. However, to allow the type-system to understand your code, you need to explicitly set `ContextShape | null` on the `createContext`.
287+
This technique works when you have a default value which makes sense - but there are occasionally cases when you do not, and in those cases `null` can feel reasonable as a default value. However, to allow the type-system to understand your code, you need to explicitly set `ContextShape | null` on the `createContext`.
288288

289289
This causes the issue that you need to eliminate the `| null` in the type for context consumers. Our recommendation is to have the hook do a runtime check for it's existence and throw an error when not present:
290290

@@ -460,4 +460,4 @@ We recommend the following resources:
460460

461461
- [React TypeScript Cheatsheet](https://react-typescript-cheatsheet.netlify.app/) is a community-maintained cheatsheet for using TypeScript with React, covering a lot of useful edge cases and providing more breadth than this document.
462462

463-
- [TypeScript Community Discord](https://discord.com/invite/typescript) is a great place to ask questions and get help with TypeScript and React issues.
463+
- [TypeScript Community Discord](https://discord.com/invite/typescript) is a great place to ask questions and get help with TypeScript and React issues.

src/content/reference/react-dom/server/renderToPipeableStream.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ Streaming does not need to wait for React itself to load in the browser, or for
288288
289289
- Data fetching with Suspense-enabled frameworks like [Relay](https://relay.dev/docs/guided-tour/rendering/loading-states/) and [Next.js](https://nextjs.org/docs/getting-started/react-essentials)
290290
- Lazy-loading component code with [`lazy`](/reference/react/lazy)
291+
- Reading the value of a Promise with [`use`](/reference/react/use)
291292
292293
Suspense **does not** detect when data is fetched inside an Effect or event handler.
293294

src/content/reference/react-dom/server/renderToReadableStream.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ Streaming does not need to wait for React itself to load in the browser, or for
287287
288288
- Data fetching with Suspense-enabled frameworks like [Relay](https://relay.dev/docs/guided-tour/rendering/loading-states/) and [Next.js](https://nextjs.org/docs/getting-started/react-essentials)
289289
- Lazy-loading component code with [`lazy`](/reference/react/lazy)
290+
- Reading the value of a Promise with [`use`](/reference/react/use)
290291
291292
Suspense **does not** detect when data is fetched inside an Effect or event handler.
292293

src/content/reference/react/Profiler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ function onRender(id, phase, actualDuration, baseDuration, startTime, commitTime
5858
* `actualDuration`: The number of milliseconds spent rendering the `<Profiler>` and its descendants for the current update. This indicates how well the subtree makes use of memoization (e.g. [`memo`](/reference/react/memo) and [`useMemo`](/reference/react/useMemo)). Ideally this value should decrease significantly after the initial mount as many of the descendants will only need to re-render if their specific props change.
5959
* `baseDuration`: The number of milliseconds estimating how much time it would take to re-render the entire `<Profiler>` subtree without any optimizations. It is calculated by summing up the most recent render durations of each component in the tree. This value estimates a worst-case cost of rendering (e.g. the initial mount or a tree with no memoization). Compare `actualDuration` against it to see if memoization is working.
6060
* `startTime`: A numeric timestamp for when React began rendering the current update.
61-
* `endTime`: A numeric timestamp for when React committed the current update. This value is shared between all profilers in a commit, enabling them to be grouped if desirable.
61+
* `commitTime`: A numeric timestamp for when React committed the current update. This value is shared between all profilers in a commit, enabling them to be grouped if desirable.
6262

6363
---
6464

src/content/reference/react/Suspense.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ async function getAlbums() {
254254

255255
- Data fetching with Suspense-enabled frameworks like [Relay](https://relay.dev/docs/guided-tour/rendering/loading-states/) and [Next.js](https://nextjs.org/docs/getting-started/react-essentials)
256256
- Lazy-loading component code with [`lazy`](/reference/react/lazy)
257+
- Reading the value of a Promise with [`use`](/reference/react/use)
257258

258259
Suspense **does not** detect when data is fetched inside an Effect or event handler.
259260

src/content/reference/react/cache.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ See prior mentioned pitfalls
414414
415415
If none of the above apply, it may be a problem with how React checks if something exists in cache.
416416
417-
If your arguments are not [primatives](https://developer.mozilla.org/en-US/docs/Glossary/Primitive) (ex. objects, functions, arrays), ensure you're passing the same object reference.
417+
If your arguments are not [primitives](https://developer.mozilla.org/en-US/docs/Glossary/Primitive) (ex. objects, functions, arrays), ensure you're passing the same object reference.
418418
419419
When calling a memoized function, React will look up the input arguments to see if a result is already cached. React will use shallow equality of the arguments to determine if there is a cache hit.
420420

0 commit comments

Comments
 (0)