Skip to content

Commit d5e9fc2

Browse files
lssmndeblasis
authored andcommitted
Translation for the page 'Handling Events' (#104)
* Translation for the page 'Handling Events' * Commit suggestion on 'callback' Co-Authored-By: lssmn <[email protected]> * Commit suggestion Co-Authored-By: lssmn <[email protected]> * Fixed all 'callback' articles
1 parent d642fe7 commit d5e9fc2

File tree

3 files changed

+42
-41
lines changed

3 files changed

+42
-41
lines changed

GLOSSARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ Glossary of the translations of technical and React-specific terms.
1717
- false
1818
- tag
1919
- lifecycle
20+
- callback
2021

2122

2223
# Common Translations

content/docs/handling-events.md

+40-40
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,72 @@
11
---
22
id: handling-events
3-
title: Handling Events
3+
title: Gestione degli Eventi
44
permalink: docs/handling-events.html
55
prev: state-and-lifecycle.html
66
next: conditional-rendering.html
77
redirect_from:
88
- "docs/events-ko-KR.html"
99
---
1010

11-
Handling events with React elements is very similar to handling events on DOM elements. There are some syntactic differences:
11+
La gestione degli eventi negli elementi React è molto simile alla gestione degli eventi negli elementi DOM. Vi sono alcune differenze sintattiche:
1212

13-
* React events are named using camelCase, rather than lowercase.
14-
* With JSX you pass a function as the event handler, rather than a string.
13+
* Gli eventi React vengono dichiarati utilizzando camelCase, anziché in minuscolo.
14+
* In JSX, il gestore di eventi (_event handler_) viene passato come funzione, piuttosto che stringa.
1515

16-
For example, the HTML:
16+
Per esempio, l'HTML:
1717

1818
```html
19-
<button onclick="activateLasers()">
20-
Activate Lasers
19+
<button onclick="attivaLasers()">
20+
Attiva Lasers
2121
</button>
2222
```
2323

24-
is slightly different in React:
24+
è leggermente diverso in React:
2525

2626
```js{1}
27-
<button onClick={activateLasers}>
28-
Activate Lasers
27+
<button onClick={attivaLasers}>
28+
Attiva Lasers
2929
</button>
3030
```
3131

32-
Another difference is that you cannot return `false` to prevent default behavior in React. You must call `preventDefault` explicitly. For example, with plain HTML, to prevent the default link behavior of opening a new page, you can write:
32+
Un'altra differenza è che, in React, non è possibile ritornare `false` per impedire il comportamento predefinito. Devi chiamare `preventDefault` esplicitamente. Ad esempio, in un semplice codice HTML per impedire il comportamento predefinito del link di aprire una nuova pagina, potresti scrivere:
3333

3434
```html
35-
<a href="#" onclick="console.log('The link was clicked.'); return false">
36-
Click me
35+
<a href="#" onclick="console.log('Hai cliccato sul link.'); return false">
36+
Clicca qui
3737
</a>
3838
```
3939

40-
In React, this could instead be:
40+
In React, invece sarebbe:
4141

4242
```js{2-5,8}
4343
function ActionLink() {
4444
function handleClick(e) {
4545
e.preventDefault();
46-
console.log('The link was clicked.');
46+
console.log('Hai cliccato sul link.');
4747
}
4848
4949
return (
5050
<a href="#" onClick={handleClick}>
51-
Click me
51+
Clicca qui
5252
</a>
5353
);
5454
}
5555
```
5656

57-
Here, `e` is a synthetic event. React defines these synthetic events according to the [W3C spec](https://www.w3.org/TR/DOM-Level-3-Events/), so you don't need to worry about cross-browser compatibility. See the [`SyntheticEvent`](/docs/events.html) reference guide to learn more.
57+
In questo esempio, il parametro `e` è un evento sintetico (_synthetic event_). React definisce questi eventi sintetici in base alle [specifiche W3C](https://www.w3.org/TR/DOM-Level-3-Events/), quindi non hai bisogno di preoccuparti della compatibilità tra browser. Consulta la guida di riferimento [`SyntheticEvent`](/docs/events.html) per saperne di più.
5858

59-
When using React you should generally not need to call `addEventListener` to add listeners to a DOM element after it is created. Instead, just provide a listener when the element is initially rendered.
59+
Usando React, in generale, non dovresti aver bisogno di chiamare `addEventListener` per aggiungere listeners ad un elemento DOM dopo la sua creazione. Invece, basta fornire un listener quando l'elemento è inizialmente renderizzato.
6060

61-
When you define a component using an [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes), a common pattern is for an event handler to be a method on the class. For example, this `Toggle` component renders a button that lets the user toggle between "ON" and "OFF" states:
61+
Quando definisci un componente usando una [classe ES6](https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Classes), un pattern comune è usare un metodo della classe come gestore di eventi. Ad esempio, questo componente `Toggle` renderizza un pulsante che consente all'utente di alternare gli stati "ON" e "OFF":
6262

6363
```js{6,7,10-14,18}
6464
class Toggle extends React.Component {
6565
constructor(props) {
6666
super(props);
6767
this.state = {isToggleOn: true};
6868
69-
// This binding is necessary to make `this` work in the callback
69+
// Necessario per accedere al corretto valore di `this` all'interno della callback
7070
this.handleClick = this.handleClick.bind(this);
7171
}
7272
@@ -91,64 +91,64 @@ ReactDOM.render(
9191
);
9292
```
9393

94-
[**Try it on CodePen**](http://codepen.io/gaearon/pen/xEmzGg?editors=0010)
94+
[**Provalo su CodePen**](http://codepen.io/gaearon/pen/xEmzGg?editors=0010)
9595

96-
You have to be careful about the meaning of `this` in JSX callbacks. In JavaScript, class methods are not [bound](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind) by default. If you forget to bind `this.handleClick` and pass it to `onClick`, `this` will be `undefined` when the function is actually called.
96+
Fai attenzione al valore di `this` nelle callback JSX. In JavaScript, i metodi delle classi non sono [associati](https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Global_objects/Function/bind) (_bound_) di default. Se dimentichi di applicare `bind` a `this.handleClick` e di passarlo a `onClick`, `this` sarà `undefined` quando la funzione verrà effettivamente chiamata.
9797

98-
This is not React-specific behavior; it is a part of [how functions work in JavaScript](https://www.smashingmagazine.com/2014/01/understanding-javascript-function-prototype-bind/). Generally, if you refer to a method without `()` after it, such as `onClick={this.handleClick}`, you should bind that method.
98+
Questo non è un comportamento specifico in React: è parte di [come funzionano le funzioni in JavaScript](https://www.smashingmagazine.com/2014/01/understanding-javascript-function-prototype-bind/). In generale, se ti riferisci ad un metodo senza `()` dopo di esso, per esempio `onClick = {this.handleClick}`, potresti aver bisogno di applicare `bind` a quel metodo.
9999

100-
If calling `bind` annoys you, there are two ways you can get around this. If you are using the experimental [public class fields syntax](https://babeljs.io/docs/plugins/transform-class-properties/), you can use class fields to correctly bind callbacks:
100+
Se usare la chiamata al metodo `bind` ti sembra troppo, ci sono due alternative a disposizione. Puoi usare la sintassi sperimentale [proprietà pubbliche delle classi](https://babeljs.io/docs/plugins/transform-class-properties/), utilizzando le proprietà delle classi per associare correttamente le callback:
101101

102102
```js{2-6}
103103
class LoggingButton extends React.Component {
104-
// This syntax ensures `this` is bound within handleClick.
105-
// Warning: this is *experimental* syntax.
104+
// Garantisce che `this` si riferisca all'oggetto originale all'interno di handleClick.
105+
  // Attenzione: questa è sintassi *sperimentale*.
106106
handleClick = () => {
107-
console.log('this is:', this);
107+
console.log('Il valore di `this` è: ', this);
108108
}
109109
110110
render() {
111111
return (
112112
<button onClick={this.handleClick}>
113-
Click me
113+
Clicca qui
114114
</button>
115115
);
116116
}
117117
}
118118
```
119119

120-
This syntax is enabled by default in [Create React App](https://github.com/facebookincubator/create-react-app).
120+
Questa sintassi è abilitata nelle impostazioni predefinite di [Create React App](https://github.com/facebookincubator/create-react-app).
121121

122-
If you aren't using class fields syntax, you can use an [arrow function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) in the callback:
122+
Se non stai usando la sintassi delle proprietà delle classi, è possibile utilizzare una [funzione a freccia](https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Functions/Arrow_functions) all'interno della callback:
123123

124124
```js{7-9}
125125
class LoggingButton extends React.Component {
126126
handleClick() {
127-
console.log('this is:', this);
127+
console.log('Il valore di `this` è: ', this);
128128
}
129129
130130
render() {
131-
// This syntax ensures `this` is bound within handleClick
131+
// Questa sintassi garantisce che `this` sia associato correttamente all'interno di handleClick
132132
return (
133133
<button onClick={(e) => this.handleClick(e)}>
134-
Click me
134+
Clicca qui
135135
</button>
136136
);
137137
}
138138
}
139139
```
140140

141-
The problem with this syntax is that a different callback is created each time the `LoggingButton` renders. In most cases, this is fine. However, if this callback is passed as a prop to lower components, those components might do an extra re-rendering. We generally recommend binding in the constructor or using the class fields syntax, to avoid this sort of performance problem.
141+
Il problema con questa sintassi è che viene creata una callback diversa ogni volta che `LoggingButton` viene renderizzato. Nella maggior parte dei casi, non vi sono problemi. Tuttavia, se questa callback viene passata come prop a componenti inferiori, tali componenti potrebbero eseguire un ulteriore re-renderizzamento. In generale, vi consigliamo di utilizzare `bind` nel costruttore o la sintassi delle proprietà pubbliche nelle classi, per evitare questo tipo di problema di prestazioni.
142142

143-
## Passing Arguments to Event Handlers {#passing-arguments-to-event-handlers}
143+
## Passare Argomenti ai Gestori di Eventi {#passing-arguments-to-event-handlers}
144144

145-
Inside a loop it is common to want to pass an extra parameter to an event handler. For example, if `id` is the row ID, either of the following would work:
145+
All'interno di un ciclo, è comune avere l'esigenza di passare un parametro aggiuntivo ad un gestore di eventi. Ad esempio, avendo `id` come l'identificativo della riga, le seguenti dichiarazioni sarebbero entrambe valide:
146146

147147
```js
148-
<button onClick={(e) => this.deleteRow(id, e)}>Delete Row</button>
149-
<button onClick={this.deleteRow.bind(this, id)}>Delete Row</button>
148+
<button onClick={(e) => this.deleteRow(id, e)}>Elimina riga</button>
149+
<button onClick={this.deleteRow.bind(this, id)}>Elimina riga</button>
150150
```
151151

152-
The above two lines are equivalent, and use [arrow functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) and [`Function.prototype.bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind) respectively.
152+
Le due linee di codice precedenti sono equivalenti e utilizzano le [funzioni a freccia](https://developer.mozilla.org/it/docs/Web/JavaScript/Reference/Functions_and_function_scope/Arrow_functions) e [`Function.prototype.bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind) rispettivamente.
153153

154-
In both cases, the `e` argument representing the React event will be passed as a second argument after the ID. With an arrow function, we have to pass it explicitly, but with `bind` any further arguments are automatically forwarded.
154+
In entrambi i casi, l'argomento `e`, che rappresenta l'evento React, verrà passato come secondo argomento dopo l'ID. Con la funzione a freccia, devi passarlo esplicitamente, mentre con `bind` qualsiasi altro argomento viene passato automaticamente.

content/docs/nav.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
- id: state-and-lifecycle
2323
title: State and Lifecycle
2424
- id: handling-events
25-
title: Handling Events
25+
title: Gestione degli Eventi
2626
- id: conditional-rendering
2727
title: Conditional Rendering
2828
- id: lists-and-keys

0 commit comments

Comments
 (0)