Skip to content

Add translation for glossary #138

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Apr 2, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 47 additions & 47 deletions content/docs/reference-glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,37 @@ permalink: docs/glossary.html

---

## Single-page Application {#single-page-application}
## Applicazione Single-page {#single-page-application}

A single-page application is an application that loads a single HTML page and all the necessary assets (such as JavaScript and CSS) required for the application to run. Any interactions with the page or subsequent pages do not require a round trip to the server which means the page is not reloaded.
Un'applicazione single-page è un'applicazione che carica una singola pagina HTML e tutte le risorse necessarie (quali Javascript e CSS) per consentirne l'esecuzione. Qualunque interazione con la pagina o con le pagine successive non richiede un'interrogazione al server il che significa che la pagina non viene ricaricata.

Though you may build a single-page application in React, it is not a requirement. React can also be used for enhancing small parts of existing websites with additional interactivity. Code written in React can coexist peacefully with markup rendered on the server by something like PHP, or with other client-side libraries. In fact, this is exactly how React is being used at Facebook.
Sebbene tu possa creare applicazioni single-page in React, questo non rappresenta un requisito. React può anche essere usato per migliorare piccole parti di un sito già esistente aggiungendo ulteriore interattività. Il codice scritto in React può coesistere tranquillamente con un markup renderizzato dal server tramite qualcosa di simile a PHP, o con altre librerie lato client. Infatti, questo è esattamente il modo in cui React viene utilizzato in Facebook.

## ES6, ES2015, ES2016, etc {#es6-es2015-es2016-etc}
## ES6, ES2015, ES2016, ecc {#es6-es2015-es2016-etc}

These acronyms all refer to the most recent versions of the ECMAScript Language Specification standard, which the JavaScript language is an implementation of. The ES6 version (also known as ES2015) includes many additions to the previous versions such as: arrow functions, classes, template literals, `let` and `const` statements. You can learn more about specific versions [here](https://en.wikipedia.org/wiki/ECMAScript#Versions).
Tutti questi acronimi si riferiscono alle versioni più recenti dello standard ECMAScript Language Specification, di cui il linguaggio JavaScript è un'implementazione. La versione ES6 (nota anche come ES2015) include molte aggiunte rispetto alle versioni precedenti, ad esempio: arrow functions, classi, stringhe template, istruzioni `let` e `const`. Puoi scoprire di più riguardo le versioni specifiche [qui](https://en.wikipedia.org/wiki/ECMAScript#Versions).

## Compilers {#compilers}
## Compilatori {#compilers}

A JavaScript compiler takes JavaScript code, transforms it and returns JavaScript code in a different format. The most common use case is to take ES6 syntax and transform it into syntax that older browsers are capable of interpreting. [Babel](https://babeljs.io/) is the compiler most commonly used with React.
Un compilatore JavaScript prende il codice JavaScript, lo trasforma e ritorna codice JavaScript in un formato differente. Il caso d'uso più comune è quello di prendere un codice con sintassi ES6 e trasformarlo in uno con sintassi che può essere interpretata da browser più vecchi. [Babel](https://babeljs.io/) è il compilatore più comunemente usato con React.

## Bundlers {#bundlers}

Bundlers take JavaScript and CSS code written as separate modules (often hundreds of them), and combine them together into a few files better optimized for the browsers. Some bundlers commonly used in React applications include [Webpack](https://webpack.js.org/) and [Browserify](http://browserify.org/).
I bundlers prendono codice JavaScript e CSS scritto in moduli separati (spesso sono centinaia) e li raggruppa in alcuni file meglio ottimizzati per i browser. Tra i bundler più comunemente usati nelle applicazioni React troviamo [Webpack](https://webpack.js.org/) e [Browserify](http://browserify.org/).

## Package Managers {#package-managers}
## Gestori dei pacchetti {#package-managers}

Package managers are tools that allow you to manage dependencies in your project. [npm](https://www.npmjs.com/) and [Yarn](https://yarnpkg.com/) are two package managers commonly used in React applications. Both of them are clients for the same npm package registry.
I gestori dei pacchetti sono strumenti che ti consentono di gestire le dipendenze nel tuo progetto. [npm](https://www.npmjs.com/) e [Yarn](https://yarnpkg.com/) sono i due gestori dei pacchetti solitamente usati nelle applicazioni React. Entrambi sono client verso lo stesso registro dei pacchetti di npm.

## CDN {#cdn}

CDN stands for Content Delivery Network. CDNs deliver cached, static content from a network of servers across the globe.
CDN sta per Content Delivery Network. Le CDN consegnano contenuto statico e in cache da una rete di server sparsi nel globo.

## JSX {#jsx}

JSX is a syntax extension to JavaScript. It is similar to a template language, but it has full power of JavaScript. JSX gets compiled to `React.createElement()` calls which return plain JavaScript objects called "React elements". To get a basic introduction to JSX [see the docs here](/docs/introducing-jsx.html) and find a more in-depth tutorial on JSX [here](/docs/jsx-in-depth.html).
JSX è un'estensione sintattica di JavaScript. E' simile ad un linguaggio template, ma possiede tutta la potenza di JavaScript. JSX viene compilato in chiamate a `React.createElement()` che ritornano oggetti JavaScript chiamati "elementi React". Per un'introduzione base a JSX [puoi leggere qui la documentazione](/docs/introducing-jsx.html) e trovare un tutorial più dettagliato su JSX [qui](/docs/jsx-in-depth.html).

React DOM uses camelCase property naming convention instead of HTML attribute names. For example, `tabindex` becomes `tabIndex` in JSX. The attribute `class` is also written as `className` since `class` is a reserved word in JavaScript:
Il DOM di React usa la convenzione camelCase sui nomi delle proprietà invece dei nomi degli attributi HTML. Per esempio, `tabindex` diventa `tabIndex` in JSX. Anche l'attributo `class` viene scritto come `className` dal momento che `class` è una parola riservata in JavaScript:

```js
const name = 'Clementine';
Expand All @@ -47,27 +47,27 @@ ReactDOM.render(
);
```

## [Elements](/docs/rendering-elements.html) {#elements}
## [Elementi](/docs/rendering-elements.html) {#elements}

React elements are the building blocks of React applications. One might confuse elements with a more widely known concept of "components". An element describes what you want to see on the screen. React elements are immutable.
Gli elementi React sono gli elementi costituenti delle applicazioni React. Si potrebbe confondere il concetto di elementi con quello maggiormente conosciuto di "componenti". Un elemento descrive quello che vuoi vedere sullo schermo. Gli elementi React sono immutabili.

```js
const element = <h1>Hello, world</h1>;
```

Typically, elements are not used directly, but get returned from components.
Tipicamente, gli elementi non sono usati direttamente, ma ritornati dai componenti.

## [Components](/docs/components-and-props.html) {#components}
## [Componenti](/docs/components-and-props.html) {#components}

React components are small, reusable pieces of code that return a React element to be rendered to the page. The simplest version of React component is a plain JavaScript function that returns a React element:
I componenti React sono pezzi di codice piccoli e riusabili che ritornano un elemento React da renderizzare in pagina. La versione più semplice di un componente React è una funzione JavaScript che ritorna un elemento React:

```js
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
```

Components can also be ES6 classes:
I componenti possono essere anche classi ES6:

```js
class Welcome extends React.Component {
Expand All @@ -77,38 +77,38 @@ class Welcome extends React.Component {
}
```

Components can be broken down into distinct pieces of functionality and used within other components. Components can return other components, arrays, strings and numbers. A good rule of thumb is that if a part of your UI is used several times (Button, Panel, Avatar), or is complex enough on its own (App, FeedStory, Comment), it is a good candidate to be a reusable component. Component names should also always start with a capital letter (`<Wrapper/>` **not** `<wrapper/>`). See [this documentation](/docs/components-and-props.html#rendering-a-component) for more information on rendering components.
I componenti possono essere suddivisi in pezzi distinti di funzionalità e usati all'interno di altri componenti. I componenti possono ritornare altri componenti, array, stringhe e numeri. Una buona norma da seguire è che se una parte della tua UI viene usata diverse volte (Button, Panel, Avatar), o è di per sé sufficientemente complessa (App, FeedStory, Comment), allora risulterà un buon candidato per diventare un componente riusabile. I nomi dei componenti inoltre dovrebbero sempre partire con una lettera maiuscola (`<Wrapper />` **e non** `<wrapper />`). Vedi [questa documentazione](/docs/components-and-props.html#rendering-a-component) per maggiori informazioni sulla renderizzazione dei componenti.

### [`props`](/docs/components-and-props.html) {#props}

`props` are inputs to a React component. They are data passed down from a parent component to a child component.
Le `props` sono gli input di un componente React. Vengono passati da un componente padre a un componente figlio.

Remember that `props` are readonly. They should not be modified in any way:
Ricorda che le `props` sono di sola lettura. Non dovrebbero essere modificate in alcun modo:

```js
// Wrong!
// Sbagliato!
props.number = 42;
```

If you need to modify some value in response to user input or a network response, use `state` instead.
Se hai bisogno di modificare alcuni valori in risposta a input dell'utente o una risposta di rete, usa `state`.

### `props.children` {#propschildren}

`props.children` is available on every component. It contains the content between the opening and closing tags of a component. For example:
`props.children` è disponibile in ogni componente. Essa comprende il contenuto tra i tag di apertura e chiusura di un componente. Ad esempio:

```js
<Welcome>Hello world!</Welcome>
```

The string `Hello world!` is available in `props.children` in the `Welcome` component:
La stringa `Hello world!` è disponibile in `props.children` nel componente `Welcome`:

```js
function Welcome(props) {
return <p>{props.children}</p>;
}
```

For components defined as classes, use `this.props.children`:
Per i componenti definiti come classi, usa `this.props.children`:

```js
class Welcome extends React.Component {
Expand All @@ -120,47 +120,47 @@ class Welcome extends React.Component {

### [`state`](/docs/state-and-lifecycle.html#adding-local-state-to-a-class) {#state}

A component needs `state` when some data associated with it changes over time. For example, a `Checkbox` component might need `isChecked` in its state, and a `NewsFeed` component might want to keep track of `fetchedPosts` in its state.
Un componente ha bisogno dello `state` quando alcuni dati associati con esso cambiano nel tempo. Per esempio, un componente `Checkbox` potrebbe aver bisogno di `isChecked` nel suo state, e un componente `NewsFeed` potrebbe voler tener traccia dei `fetchedPosts` nel suo state.

The most important difference between `state` and `props` is that `props` are passed from a parent component, but `state` is managed by the component itself. A component cannot change its `props`, but it can change its `state`.
La differenza più importante tra `state` e `props` è che le `props` sono passate da un componente padre, ma lo `state` viene gestito dal componente stesso. Un componente non può cambiare le sue `props`, ma può cambiare il suo `state`.

For each particular piece of changing data, there should be just one component that "owns" it in its state. Don't try to synchronize states of two different components. Instead, [lift it up](/docs/lifting-state-up.html) to their closest shared ancestor, and pass it down as props to both of them.
Per ogni pezzo di dato che cambia, ci dovrebbe essere solo un componente che "possiede" tale dato nel suo state. Non provare a sincronizzare lo state di due componenti diversi. Invece, [sollevalo](/docs/lifting-state-up.html) verso l'antenato comune più vicino, e passalo come props ad entrambi.

## [Lifecycle Methods](/docs/state-and-lifecycle.html#adding-lifecycle-methods-to-a-class) {#lifecycle-methods}

Lifecycle methods are custom functionality that gets executed during the different phases of a component. There are methods available when the component gets created and inserted into the DOM ([mounting](/docs/react-component.html#mounting)), when the component updates, and when the component gets unmounted or removed from the DOM.
I metodi del lifecycle sono funzionalità personalizzate che vengono eseguite durante le diverse fasi di un componente. Ci sono metodi disponibili quando il componente viene creato e inserito nel DOM ([montaggio](/docs/react-component.html#mounting)), quando il componente si aggiorna, e quando il componente viene smontato o rimosso dal DOM.

## [Controlled](/docs/forms.html#controlled-components) vs. [Uncontrolled Components](/docs/uncontrolled-components.html)
## [Componenti controllati](/docs/forms.html#controlled-components) vs. [Componenti non controllati](/docs/uncontrolled-components.html)

React has two different approaches to dealing with form inputs.
React ha due diversi approcci nel trattare gli input di un form.

An input form element whose value is controlled by React is called a *controlled component*. When a user enters data into a controlled component a change event handler is triggered and your code decides whether the input is valid (by re-rendering with the updated value). If you do not re-render then the form element will remain unchanged.
Un elemento input di un form il cui valore è controllato da React viene chiamato *componente controllato*. Quando un utente inserisce dati all'interno di un componente controllato viene lanciato un gestore dell'evento change e il tuo codice deciderà se l'input è valido (ri-renderizzando con il valore aggiornato). Se non ri-renderizzi allora l'elemento del form rimarrà immutato.

An *uncontrolled component* works like form elements do outside of React. When a user inputs data into a form field (an input box, dropdown, etc) the updated information is reflected without React needing to do anything. However, this also means that you can't force the field to have a certain value.
Un *componente non controllato* funziona allo stesso modo degli elementi del form al di fuori di React. Quando un utente inserisce dati in un campo del form (una casella di input, una lista a cascata, ecc.) le informazioni aggiornate trovano riscontro senza che React abbia bisogno di fare nulla. Tuttavia, questo significa anche che non puoi forzare un campo ad avere un certo valore.

In most cases you should use controlled components.
Nella maggior parte dei casi dovresti usare componenti controllati.

## [Keys](/docs/lists-and-keys.html) {#keys}
## [Chiavi](/docs/lists-and-keys.html) {#keys}

A "key" is a special string attribute you need to include when creating arrays of elements. Keys help React identify which items have changed, are added, or are removed. Keys should be given to the elements inside an array to give the elements a stable identity.
Una "chiave" è un attributo stringa speciale che hai bisogno di includere quando crei array di elementi. Le chiavi aiutano React ad identificare quali elementi sono cambiati, quali sono stati aggiunti, o quali sono stati rimossi. Le chiavi dovrebbero essere assegnate agli elementi all'interno di un array per dargli un'identità stabile.

Keys only need to be unique among sibling elements in the same array. They don't need to be unique across the whole application or even a single component.
Le chiavi necessitano solo di essere univoche tra gli elementi dello stesso array. Non c'è bisogno che siano univoche nell'intera applicazione o in un singolo componente.

Don't pass something like `Math.random()` to keys. It is important that keys have a "stable identity" across re-renders so that React can determine when items are added, removed, or re-ordered. Ideally, keys should correspond to unique and stable identifiers coming from your data, such as `post.id`.
Non passare cose come `Math.random()` alle chiavi. E' importante che le chiavi abbiano "un'identità stabile" tra le ri-renderizzazioni cosicché React possa determinare quali elementi sono stati aggiunti, rimossi, o riordinati. Idealmente, le chiavi dovrebbero corrispondere a identificatori stabili e univoci provenienti dai tuoi dati, come `post.id`.

## [Refs](/docs/refs-and-the-dom.html) {#refs}

React supports a special attribute that you can attach to any component. The `ref` attribute can be an object created by [`React.createRef()` function](/docs/react-api.html#reactcreateref) or a callback function, or a string (in legacy API). When the `ref` attribute is a callback function, the function receives the underlying DOM element or class instance (depending on the type of element) as its argument. This allows you to have direct access to the DOM element or component instance.
React supporta un attributo speciale che puoi attaccare ad ogni componente. L'attributo `ref` può essere un oggetto creato dalla [funzione `React.createRef()`](/docs/react-api.html#reactcreateref) o una funzione di callback, o una stringa (nelle API legacy). Quando l'attributo `ref` è una funzione di callback, la funzione riceve l'elemento DOM sottostante o l'istanza di classe come argomento (a seconda del tipo di elemento). Questo ti consente di avere accesso diretto all'elemento del DOM o all'istanza del componente.

Use refs sparingly. If you find yourself often using refs to "make things happen" in your app, consider getting more familiar with [top-down data flow](/docs/lifting-state-up.html).
Usa i refs con parsimonia. Se ti ritrovi a usare spesso i refs per "far funzionare le cose" nella tua app, comincia a prendere familiarità con il [flusso di dati top-down](/docs/lifting-state-up.html).

## [Events](/docs/handling-events.html) {#events}
## [Eventi](/docs/handling-events.html) {#events}

Handling events with React elements has some syntactic differences:
La gestione degli eventi con gli elementi React ha alcune differenze sintattiche:

* React event handlers are named using camelCase, rather than lowercase.
* With JSX you pass a function as the event handler, rather than a string.
* I gestori degli eventi React sono dichiarati in camelCase, piuttosto che in minuscolo.
* Con JSX puoi passare una funzione come gestore degli eventi, piuttosto che una stringa.

## [Riconciliazione](/docs/reconciliation.html) {#reconciliation}

When a component's props or state change, React decides whether an actual DOM update is necessary by comparing the newly returned element with the previously rendered one. When they are not equal, React will update the DOM. This process is called "reconciliation".
Quando una prop o lo stato di un componente cambia, React decide se è necessario effettuare un aggiornamento del DOM confrontando il nuovo elemento ritornato con quello precedentemente renderizzato. Quando non sono uguali, React aggiornerà il DOM. Questo processo viene chiamato "riconciliazione".