You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 97f8be0
Browse filesBrowse the repository at this point in the historyBrowse files
Imposta il focus sul primo nodo DOM che può ricevere il focus nel Fragment. A differenza di chiamare `element.focus()` su un elemento DOM, questo metodo cerca *tutti* i figli annidati in profondità (depth-first) finché non trova un elemento che può ricevere il focus — non solo l'elemento stesso o i suoi figli diretti.
127
+
Imposta il focus sul primo nodo DOM focusabile nel Fragment. A differenza di chiamare `element.focus()` su un elemento DOM, questo metodo cerca *tutti* i figli annidati in profondità (depth-first) finché non trova un elemento focusabile — non solo l'elemento stesso o i suoi figli diretti.
128
128
129
129
```js
130
130
fragmentRef.current.focus();
@@ -142,7 +142,7 @@ fragmentRef.current.focus();
142
142
143
143
#### `focusLast(options?)` {/*focuslast*/}
144
144
145
-
Imposta il focus sull'ultimo nodo DOM che può ricevere il focus nel Fragment. Cerca i figli annidati in profondità (depth-first), poi itera in ordine inverso.
145
+
Imposta il focus sull'ultimo nodo DOM focusabile nel Fragment. Cerca i figli annidati in profondità (depth-first), poi itera in ordine inverso.
Restituisce un array piatto di oggetti [`DOMRect`](https://developer.mozilla.org/it/docs/Web/API/DOMRect) che rappresentano i rettangoli di delimitazione di tutti i figli DOM di primo livello.
214
+
Restituisce un array flat di oggetti [`DOMRect`](https://developer.mozilla.org/it/docs/Web/API/DOMRect) che rappresentano i rettangoli di delimitazione di tutti i figli DOM di primo livello.
***optional**`alignToTop`: Un booleano. Se `true`*(il valore predefinito)*, scorre il primo figlio in alto nell'area scrollabile. Se `false`, scorre l'ultimo figlio in basso. A differenza di [`Element.scrollIntoView()`](https://developer.mozilla.org/it/docs/Web/API/Element/scrollIntoView), questo metodo non accetta un oggetto `ScrollIntoViewOptions`.
272
+
***optional**`alignToTop`: Un booleano. Se `true` (il default), scorre il primo figlio in alto nell'area scrollabile. Se `false`, scorre l'ultimo figlio in basso. A differenza di [`Element.scrollIntoView()`](https://developer.mozilla.org/it/docs/Web/API/Element/scrollIntoView), questo metodo non accetta un oggetto `ScrollIntoViewOptions`.
* I metodi che operano sui figli (come `addEventListener`, `observeUsing` e `getClientRects`) operano sui *figli host (DOM) di primo livello* del Fragment. Non agiscono direttamente sui figli annidati all'interno di un altro elemento DOM.
288
-
*`focus` e `focusLast` cercano i figli annidati in profondità (depth-first) per trovare elementi che possono ricevere il focus, a differenza dei metodi per eventi e observer che operano solo sui figli host di primo livello.
289
-
*`observeUsing` non funziona sui nodi di testo. React registra un warning in sviluppo se il Fragment contiene solo figli di testo.
290
-
* React non applica i listener di eventi aggiunti tramite `addEventListener` agli alberi [`<Activity>`](/reference/react/Activity) nascosti. Quando un boundary`Activity` passa da nascosto a visibile, i listener vengono applicati automaticamente.
287
+
* I metodi che targettano i figli (come `addEventListener`, `observeUsing` e `getClientRects`) operano sui *figli host (DOM) di primo livello* del Fragment. Non targettano direttamente i figli annidati all'interno di un altro elemento DOM.
288
+
*`focus` e `focusLast` cercano i figli annidati in profondità (depth-first) per trovare elementi focusabili, a differenza dei metodi per eventi e observer che targettano solo i figli host di primo livello.
289
+
*`observeUsing` non funziona sui nodi di testo. React registra un warning in development se il Fragment contiene solo figli di testo.
290
+
* React non applica i listener di eventi aggiunti tramite `addEventListener` agli alberi [`<Activity>`](/reference/react/Activity) nascosti. Quando un confine`Activity` passa da nascosto a visibile, i listener vengono applicati automaticamente.
291
291
* Ogni figlio DOM di primo livello di un Fragment con un `ref` ottiene una proprietà `reactFragments` — un `Set<FragmentInstance>` contenente tutte le istanze Fragment che possiedono l'elemento. Questo consente di [memorizzare nella cache un observer condiviso](#caching-global-intersection-observer) tra più Fragment.
292
292
293
293
---
294
294
295
295
## Usage {/*usage*/}
296
296
297
-
### Restituire più elementi {/*returning-multiple-elements*/}
297
+
### Returning multiple elements {/*returning-multiple-elements*/}
298
298
299
299
Usa `Fragment`, o l'equivalente sintassi `<>...</>`, per raggruppare più elementi insieme. Puoi usarlo per mettere più elementi in qualsiasi punto in cui può andare un singolo elemento. Ad esempio, un componente può restituire solo un elemento, ma usando un Fragment puoi raggruppare più elementi e restituirli come gruppo:
300
300
@@ -349,7 +349,7 @@ function PostBody({ body }) {
349
349
350
350
<DeepDive>
351
351
352
-
#### Come scrivere un Fragment senza la sintassi speciale? {/*how-to-write-a-fragment-without-the-special-syntax*/}
352
+
#### How to write a Fragment without the special syntax? {/*how-to-write-a-fragment-without-the-special-syntax*/}
353
353
354
354
L'esempio sopra è equivalente a importare `Fragment` da React:
355
355
@@ -372,7 +372,7 @@ Di solito non ne avrai bisogno a meno che tu non debba [passare una `key` al tuo
372
372
373
373
---
374
374
375
-
### Assegnare più elementi a una variabile {/*assigning-multiple-elements-to-a-variable*/}
375
+
### Assigning multiple elements to a variable {/*assigning-multiple-elements-to-a-variable*/}
376
376
377
377
Come qualsiasi altro elemento, puoi assegnare elementi Fragment a variabili, passarli come props e così via:
378
378
@@ -394,7 +394,7 @@ function CloseDialog() {
394
394
395
395
---
396
396
397
-
### Raggruppare elementi con del testo {/*grouping-elements-with-text*/}
397
+
### Grouping elements with text {/*grouping-elements-with-text*/}
398
398
399
399
Puoi usare `Fragment` per raggruppare testo insieme a componenti:
400
400
@@ -413,7 +413,7 @@ function DateRangePicker({ start, end }) {
413
413
414
414
---
415
415
416
-
### Renderizzare un elenco di Fragment {/*rendering-a-list-of-fragments*/}
416
+
### Rendering a list of Fragments {/*rendering-a-list-of-fragments*/}
417
417
418
418
Ecco una situazione in cui devi scrivere `Fragment` esplicitamente invece di usare la sintassi `<></>`. Quando [renderizzi più elementi in un loop](/learn/rendering-lists), devi assegnare una `key` a ogni elemento. Se gli elementi all'interno del loop sono Fragment, devi usare la normale sintassi degli elementi JSX per fornire l'attributo `key`:
419
419
@@ -466,7 +466,7 @@ function PostBody({ body }) {
466
466
467
467
---
468
468
469
-
### Aggiungere listener di eventi senza un elemento wrapper {/*adding-event-listeners-without-wrapper*/}
469
+
### Adding event listeners without a wrapper element {/*adding-event-listeners-without-wrapper*/}
470
470
471
471
I ref dei Fragment ti permettono di aggiungere listener di eventi a un gruppo di elementi senza aggiungere un nodo DOM wrapper. Usa una [ref callback](/reference/react-dom/components/common#ref-callback) per collegare e ripulire i listener:
472
472
@@ -531,9 +531,9 @@ La chiamata `addEventListener` applica il listener a ogni figlio DOM di primo li
531
531
532
532
<DeepDive>
533
533
534
-
#### Su quali figli agisce un ref di Fragment? {/*which-children-does-a-fragment-ref-target*/}
534
+
#### Which children does a Fragment ref target? {/*which-children-does-a-fragment-ref-target*/}
535
535
536
-
Un `FragmentInstance`opera sui **figli host (DOM) di primo livello** del Fragment. Considera questo albero:
536
+
Un `FragmentInstance`targetta i **figli host (DOM) di primo livello** del Fragment. Considera questo albero:
537
537
538
538
```js
539
539
<Fragment ref={ref}>
@@ -547,15 +547,15 @@ Un `FragmentInstance` opera sui **figli host (DOM) di primo livello** del Fragme
547
547
</Fragment>
548
548
```
549
549
550
-
`Wrapper` è un componente React, quindi il `FragmentInstance` lo attraversa per trovare i nodi DOM. I figli interessati sono `A`, `B` e `D`. `C` non è interessato perché è annidato all'interno dell'elemento DOM `B`.
550
+
`Wrapper` è un componente React, quindi il `FragmentInstance` lo attraversa per trovare i nodi DOM. I figli targettati sono `A`, `B` e `D`. `C` non è targettato perché è annidato all'interno dell'elemento DOM `B`.
551
551
552
552
Metodi come `addEventListener`, `observeUsing` e `getClientRects` operano su questi figli DOM di primo livello. `focus` e `focusLast` sono diversi — cercano *tutti* i figli annidati in profondità (depth-first) per trovare elementi focusabili.
553
553
554
554
</DeepDive>
555
555
556
556
---
557
557
558
-
### Gestire il focus su un gruppo di elementi {/*managing-focus-across-elements*/}
558
+
### Managing focus across a group of elements {/*managing-focus-across-elements*/}
559
559
560
560
I ref dei Fragment forniscono i metodi `focus`, `focusLast` e `blur` che operano su tutti i nodi DOM all'interno del Fragment:
561
561
@@ -640,7 +640,7 @@ Chiamare `focus()` imposta il focus sull'input `street` — anche se è annidato
640
640
641
641
---
642
642
643
-
### Scorrere un gruppo di elementi nella vista {/*scrolling-group-into-view*/}
643
+
### Scrolling a group of elements into view {/*scrolling-group-into-view*/}
644
644
645
645
Usa `scrollIntoView` per scorrere i figli di un Fragment nella vista senza un elemento wrapper. Passa `true` (o ometti l'argomento) per scorrere il primo figlio in alto. Passa `false` per scorrere l'ultimo figlio in basso:
646
646
@@ -734,7 +734,7 @@ p {
734
734
735
735
---
736
736
737
-
### Osservare la visibilità senza un elemento wrapper {/*observing-visibility-without-wrapper*/}
737
+
### Observing visibility without a wrapper element {/*observing-visibility-without-wrapper*/}
738
738
739
739
Usa `observeUsing` per collegare un `IntersectionObserver` a tutti i figli DOM di primo livello di un Fragment. Questo ti permette di tracciare la visibilità senza richiedere ai componenti figli di esporre ref o aggiungere un elemento wrapper:
740
740
@@ -846,7 +846,7 @@ export default function Card({ title }) {
846
846
847
847
---
848
848
849
-
### Memorizzare nella cache un IntersectionObserver globale {/*caching-global-intersection-observer*/}
849
+
### Caching a global IntersectionObserver {/*caching-global-intersection-observer*/}
850
850
851
851
Un'ottimizzazione delle performance comune per siti con molti observer è condividere un singolo `IntersectionObserver` per configurazione e instradare le sue entry ai callback corretti in base a quale elemento ha intersecato. I ref dei Fragment supportano lo stesso pattern tramite la proprietà `reactFragments`.
0 commit comments