Skip to content

Commit a4efd8e

Browse files
Merge pull request #10 from EzequielMonforte/translate-components-props
Components and Props translation
2 parents ba2b8a8 + 263de97 commit a4efd8e

File tree

1 file changed

+49
-48
lines changed

1 file changed

+49
-48
lines changed

content/docs/components-and-props.md

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: components-and-props
3-
title: Components and Props
3+
title: Componentes y Propiedades
44
permalink: docs/components-and-props.html
55
redirect_from:
66
- "docs/reusable-components.html"
@@ -15,24 +15,25 @@ redirect_from:
1515
prev: rendering-elements.html
1616
next: state-and-lifecycle.html
1717
---
18+
Los componentes permiten separar la UI en piezas independientes, reutilizables y pensar en cada pieza de forma aislada.Esta página proporciona una introducción a la idea de los componentes.
19+
Puedes encontrar una [API detallada sobre componentes aqui](/docs/react-component.html).
1820

19-
Components let you split the UI into independent, reusable pieces, and think about each piece in isolation. This page provides an introduction to the idea of components. You can find a [detailed component API reference here](/docs/react-component.html).
21+
Conceptualmente, los componentes son como las funciones de JavaScript. Aceptan entradas arbitrarias (llamadas "props") y devuelven a React elementos que describen lo que debe aparecer en la pantalla.
2022

21-
Conceptually, components are like JavaScript functions. They accept arbitrary inputs (called "props") and return React elements describing what should appear on the screen.
23+
## Componentes Funcionales y de Clase
2224

23-
## Function and Class Components
24-
25-
The simplest way to define a component is to write a JavaScript function:
25+
La forma más sencilla de definir un componente es escribir una función de JavaScript:
2626

2727
```js
2828
function Welcome(props) {
2929
return <h1>Hello, {props.name}</h1>;
3030
}
3131
```
3232

33-
This function is a valid React component because it accepts a single "props" (which stands for properties) object argument with data and returns a React element. We call such components "function components" because they are literally JavaScript functions.
33+
Esta función es un componente de React válido porque acepta un solo argumento de objeto "props" (que proviene de propiedades) con datos y devuelve un elemento de React. Llamamos a dichos componentes "funcionales" porque literalmente son funciones JavaScript.
34+
35+
También puedes utilizar una [clase de ES6](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Classes) para definir un componente:
3436

35-
You can also use an [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes) to define a component:
3637

3738
```js
3839
class Welcome extends React.Component {
@@ -42,27 +43,27 @@ class Welcome extends React.Component {
4243
}
4344
```
4445

45-
The above two components are equivalent from React's point of view.
46+
Los dos componentes anteriores son equivalentes desde el punto de vista de React.
4647

47-
Classes have some additional features that we will discuss in the [next sections](/docs/state-and-lifecycle.html). Until then, we will use function components for their conciseness.
48+
Las clases tienen algunas características adicionales que veremos en las [próximas secciones](/docs/state-and-lifecycle.html). Hasta entonces, usaremos componentes funcionales por su brevedad.
4849

49-
## Rendering a Component
50+
## Renderizando un Componente
5051

51-
Previously, we only encountered React elements that represent DOM tags:
52+
Anteriormente, sólo encontramos elementos de React que representan las etiquetas del DOM:
5253

5354
```js
5455
const element = <div />;
5556
```
5657

57-
However, elements can also represent user-defined components:
58+
Sin embargo, los elementos también pueden representar componentes definidos por el usuario:
5859

5960
```js
6061
const element = <Welcome name="Sara" />;
6162
```
6263

63-
When React sees an element representing a user-defined component, it passes JSX attributes to this component as a single object. We call this object "props".
64+
Cuando React ve representando un componente definido por el usuario, pasa atributos JSX a este componente como un solo objeto. Llamamos a este objeto "props".
6465

65-
For example, this code renders "Hello, Sara" on the page:
66+
Por ejemplo, este código muestra "Hello, Sara" en la página:
6667

6768
```js{1,5}
6869
function Welcome(props) {
@@ -78,24 +79,24 @@ ReactDOM.render(
7879

7980
[](codepen://components-and-props/rendering-a-component)
8081

81-
Let's recap what happens in this example:
82+
Recapitulemos lo que sucede en este ejemplo:
8283

83-
1. We call `ReactDOM.render()` with the `<Welcome name="Sara" />` element.
84-
2. React calls the `Welcome` component with `{name: 'Sara'}` as the props.
85-
3. Our `Welcome` component returns a `<h1>Hello, Sara</h1>` element as the result.
86-
4. React DOM efficiently updates the DOM to match `<h1>Hello, Sara</h1>`.
84+
1. Llamamos a `ReactDOM.render()` con el elemento `<Welcome name="Sara" />`.
85+
2. React llama al componente `Welcome` con `{name: 'Sara'}` como "props".
86+
3. Nuestro componente `Welcome` devuelve un elemento `<h1>Hello, Sara</h1>` como resultado.
87+
4. React DOM actualiza eficientemente el DOM para que coincida con `<h1>Hello, Sara</h1>`.
8788

88-
>**Note:** Always start component names with a capital letter.
89-
>
90-
>React treats components starting with lowercase letters as DOM tags. For example, `<div />` represents an HTML div tag, but `<Welcome />` represents a component and requires `Welcome` to be in scope.
91-
>
92-
>You can read more about the reasoning behind this convention [here.](/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized)
89+
> **Nota:** Comienza siempre los nombres de componentes con una letra mayúscula.
90+
>
91+
>React trata los componentes que empiezan con letras minúsculas como etiquetas del DOM. Por ejemplo, `<div />` representa una etiqueta div HTML pero `<Welcome />` representa un componente y requiere que `Welcome` esté en scope.
92+
>
93+
> Puedes leer mas sobre el razonamiento detras de esta convención [aquí.](/docs/jsx-in-depth.html#user-defined-components-must-be-capitalized)
9394
94-
## Composing Components
95+
## Composición de Componentes
9596

96-
Components can refer to other components in their output. This lets us use the same component abstraction for any level of detail. A button, a form, a dialog, a screen: in React apps, all those are commonly expressed as components.
97+
Los componentes pueden referirse a otros componentes en su salida. Esto nos permite utilizar la misma abstracción de componente para cualquier nivel de detalle. Un botón, un cuadro de diálogo, un formulario, una pantalla: en aplicaciones de React, todos son expresados comunmente como componentes.
9798

98-
For example, we can create an `App` component that renders `Welcome` many times:
99+
Por ejemplo, podemos crear un componente `App` que renderiza `Welcome` muchas veces:
99100

100101
```js{8-10}
101102
function Welcome(props) {
@@ -120,13 +121,13 @@ ReactDOM.render(
120121

121122
[](codepen://components-and-props/composing-components)
122123

123-
Typically, new React apps have a single `App` component at the very top. However, if you integrate React into an existing app, you might start bottom-up with a small component like `Button` and gradually work your way to the top of the view hierarchy.
124+
Por lo general, las aplicaciones de React nuevas tienen un único componente `App` en lo más alto. Sin embargo, si se integra React en una aplicación existente, se podría empezar de abajo hacia arriba con un pequeño componente como `Button` y poco a poco trabajar el camino a la cima de la jerarquía de la vista.
124125

125-
## Extracting Components
126+
## Extracción de Componentes
126127

127-
Don't be afraid to split components into smaller components.
128+
No tengas miedo de dividir los componentes en otros más pequeños.
128129

129-
For example, consider this `Comment` component:
130+
Por ejemplo, considera este componente `Comment`:
130131

131132
```js
132133
function Comment(props) {
@@ -154,11 +155,11 @@ function Comment(props) {
154155

155156
[](codepen://components-and-props/extracting-components)
156157

157-
It accepts `author` (an object), `text` (a string), and `date` (a date) as props, and describes a comment on a social media website.
158+
Acepta `author` (un objeto), `text` (un string), y `date` (una fecha) como props, y describe un comentario en una web de redes sociales.
158159

159-
This component can be tricky to change because of all the nesting, and it is also hard to reuse individual parts of it. Let's extract a few components from it.
160+
Este componente puede ser difícil de cambiar debido a todo el anidamiento, y támbien es difícil reusar partes individuales de él. Vamos a extraer algunos componentes del mismo.
160161

161-
First, we will extract `Avatar`:
162+
Primero, vamos a extraer `Avatar`:
162163

163164
```js{3-6}
164165
function Avatar(props) {
@@ -171,11 +172,11 @@ function Avatar(props) {
171172
}
172173
```
173174

174-
The `Avatar` doesn't need to know that it is being rendered inside a `Comment`. This is why we have given its prop a more generic name: `user` rather than `author`.
175+
El `Avatar` no necesita saber que está siendo renderizado dentro de un `Comment`. Esto es por lo que le dimos a su propiedad un nombre más genérico: `user` en vez de `author`.
175176

176-
We recommend naming props from the component's own point of view rather than the context in which it is being used.
177+
Recomendamos nombrar las props desde el punto de vista del componente, en vez de la del contexto en el que se va a utilizar.
177178

178-
We can now simplify `Comment` a tiny bit:
179+
Ahora podemos simplificar `Comment` un poquito:
179180

180181
```js{5}
181182
function Comment(props) {
@@ -198,7 +199,7 @@ function Comment(props) {
198199
}
199200
```
200201

201-
Next, we will extract a `UserInfo` component that renders an `Avatar` next to the user's name:
202+
A continuacion, vamos a extraer un componente `UserInfo` que renderiza un `Avatar` al lado del nombre del usuario:
202203

203204
```js{3-8}
204205
function UserInfo(props) {
@@ -213,7 +214,7 @@ function UserInfo(props) {
213214
}
214215
```
215216

216-
This lets us simplify `Comment` even further:
217+
Esto nos permite simplificar `Comment` aun más:
217218

218219
```js{4}
219220
function Comment(props) {
@@ -233,30 +234,30 @@ function Comment(props) {
233234

234235
[](codepen://components-and-props/extracting-components-continued)
235236

236-
Extracting components might seem like grunt work at first, but having a palette of reusable components pays off in larger apps. 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.
237+
Extraer componentes puede parecer un trabajo pesado al principio, pero tener una paleta de componentes reutilizables vale la pena en aplicaciones más grandes. Una buena regla en general es que si una parte de su UI se usa varias veces (`Button`, `Panel`, `Avatar`), o es lo suficientemente compleja por si misma (`App`, `FeedStory`, `Comment`), es buen candidato para ser un componente reutilizable.
237238

238-
## Props are Read-Only
239+
## Las props son de solo lectura
239240

240-
Whether you declare a component [as a function or a class](#function-and-class-components), it must never modify its own props. Consider this `sum` function:
241+
Ya sea que declares un componente [como una función o como una clase](#function-and-class-components), este nunca debe modificar sus props. Considera esta función `sum` :
241242

242243
```js
243244
function sum(a, b) {
244245
return a + b;
245246
}
246247
```
247248

248-
Such functions are called ["pure"](https://en.wikipedia.org/wiki/Pure_function) because they do not attempt to change their inputs, and always return the same result for the same inputs.
249+
Tales funciones son llamadas ["puras"](https://en.wikipedia.org/wiki/Pure_function) por que no tratan de cambiar sus entradas, y siempre devuelven el mismo resultado para las mismas entradas.
249250

250-
In contrast, this function is impure because it changes its own input:
251+
En contraste, esta función es impura por que cambia su propia entrada:
251252

252253
```js
253254
function withdraw(account, amount) {
254255
account.total -= amount;
255256
}
256257
```
257258

258-
React is pretty flexible but it has a single strict rule:
259+
React es bastante flexible pero tiene una sola regla estricta:
259260

260-
**All React components must act like pure functions with respect to their props.**
261+
**Todos los componentes de React deben actuar como funciones puras con respecto a sus props.**
261262

262-
Of course, application UIs are dynamic and change over time. In the [next section](/docs/state-and-lifecycle.html), we will introduce a new concept of "state". State allows React components to change their output over time in response to user actions, network responses, and anything else, without violating this rule.
263+
Por supuesto, las UI de las aplicaciones son dinámicas y cambian con el tiempo. En la [siguiente sección](/docs/state-and-lifecycle.html), introduciremos un nuevo concepto de "estado". El estado le permite a los componentes de React cambiar su salida a lo largo del tiempo en respuesta a acciones del usuario, respuestas de red y cualquier otra cosa, sin violar esta regla.

0 commit comments

Comments
 (0)