Skip to content

Commit bb6ac38

Browse files
jesgarciamartinezcarburo
authored andcommitted
translate composition-vs-inheritance to spanish (#150)
1 parent 79e6cce commit bb6ac38

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

content/docs/composition-vs-inheritance.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
---
22
id: composition-vs-inheritance
3-
title: Composition vs Inheritance
3+
title: Composición vs Herencia
44
permalink: docs/composition-vs-inheritance.html
55
redirect_from:
66
- "docs/multiple-components.html"
77
prev: lifting-state-up.html
88
next: thinking-in-react.html
99
---
1010

11-
React has a powerful composition model, and we recommend using composition instead of inheritance to reuse code between components.
11+
React tiene un potente modelo de composición, y recomendamos usar composición en lugar de herencia para reutilizar código entre componentes.
1212

13-
In this section, we will consider a few problems where developers new to React often reach for inheritance, and show how we can solve them with composition.
13+
En esta sección consideraremos algunos problemas en los que los desarrolladores nuevos en React a menudo emplean herencia, y mostraremos cómo los podemos resolver con composición.
1414

15-
## Containment {#containment}
15+
## Contención {#containment}
1616

17-
Some components don't know their children ahead of time. This is especially common for components like `Sidebar` or `Dialog` that represent generic "boxes".
17+
Algunos componentes no conocen sus hijos de antemano. Esto es especialmente común para componentes como `Sidebar` o `Dialog` que representan "cajas" genéricas.
1818

19-
We recommend that such components use the special `children` prop to pass children elements directly into their output:
19+
Recomendamos que estos componentes usen la prop especial children para pasar elementos hijos directamente en su resultado:
2020

2121
```js{4}
2222
function FancyBorder(props) {
@@ -28,28 +28,28 @@ function FancyBorder(props) {
2828
}
2929
```
3030

31-
This lets other components pass arbitrary children to them by nesting the JSX:
31+
Esto permite que otros componentes les pasen hijos arbitrarios anidando el JSX:
3232

3333
```js{4-9}
3434
function WelcomeDialog() {
3535
return (
3636
<FancyBorder color="blue">
3737
<h1 className="Dialog-title">
38-
Welcome
38+
Bienvenidos
3939
</h1>
4040
<p className="Dialog-message">
41-
Thank you for visiting our spacecraft!
41+
¡Gracias por visitar nuestra nave espacial!
4242
</p>
4343
</FancyBorder>
4444
);
4545
}
4646
```
4747

48-
**[Try it on CodePen](https://codepen.io/gaearon/pen/ozqNOV?editors=0010)**
48+
**[Pruébalo en CodePen](https://codepen.io/gaearon/pen/ozqNOV?editors=0010)**
4949

50-
Anything inside the `<FancyBorder>` JSX tag gets passed into the `FancyBorder` component as a `children` prop. Since `FancyBorder` renders `{props.children}` inside a `<div>`, the passed elements appear in the final output.
50+
Cualquier cosa dentro de la etiqueta JSX `<FancyBorder>` se pasa dentro del componente `FancyBorder` como la prop `children`. Como `FancyBorder` renderiza `{props.children}` dentro de un `<div>`, los elementos que se le han pasado aparecen en el resultado final.
5151

52-
While this is less common, sometimes you might need multiple "holes" in a component. In such cases you may come up with your own convention instead of using `children`:
52+
Aunque es menos común, a veces puedes necesitar múltiples "agujeros" en un componente. En estos casos puedes inventarte tu propia convención en lugar de usar `children`:
5353

5454
```js{5,8,18,21}
5555
function SplitPane(props) {
@@ -78,15 +78,15 @@ function App() {
7878
}
7979
```
8080

81-
[**Try it on CodePen**](https://codepen.io/gaearon/pen/gwZOJp?editors=0010)
81+
[**Pruébalo en CodePen**](https://codepen.io/gaearon/pen/gwZOJp?editors=0010)
8282

83-
React elements like `<Contacts />` and `<Chat />` are just objects, so you can pass them as props like any other data. This approach may remind you of "slots" in other libraries but there are no limitations on what you can pass as props in React.
83+
Los elementos como `<Contacts />` y `<Chat />` son simplemente objetos, por lo que puedes pasarlos como props como cualquier otro dato. Este enfoque puede recordarte a "huecos" (slots) en otras bibliotecas, pero no hay limitaciones en lo que puedes pasar como props en React.
8484

85-
## Specialization {#specialization}
85+
## Especialización {#specialization}
8686

87-
Sometimes we think about components as being "special cases" of other components. For example, we might say that a `WelcomeDialog` is a special case of `Dialog`.
87+
A veces pensamos en componentes como "casos concretos" de otros componentes. Por ejemplo, podríamos decir que un `WelcomeDialog` es un caso concreto de `Dialog`.
8888

89-
In React, this is also achieved by composition, where a more "specific" component renders a more "generic" one and configures it with props:
89+
En React, esto también se consigue por composición, en la que un componente más "específico" renderiza uno más "genérico" y lo configura con props:
9090

9191
```js{5,8,16-18}
9292
function Dialog(props) {
@@ -105,15 +105,15 @@ function Dialog(props) {
105105
function WelcomeDialog() {
106106
return (
107107
<Dialog
108-
title="Welcome"
109-
message="Thank you for visiting our spacecraft!" />
108+
title="Bienvenidos"
109+
message="¡Gracias por visitar nuestra nave espacial!" />
110110
);
111111
}
112112
```
113113

114-
[**Try it on CodePen**](https://codepen.io/gaearon/pen/kkEaOZ?editors=0010)
114+
[**Pruébalo en CodePen**](https://codepen.io/gaearon/pen/kkEaOZ?editors=0010)
115115

116-
Composition works equally well for components defined as classes:
116+
La composición funciona igual de bien para componentes definidos como clases:
117117

118118
```js{10,27-31}
119119
function Dialog(props) {
@@ -140,12 +140,12 @@ class SignUpDialog extends React.Component {
140140
141141
render() {
142142
return (
143-
<Dialog title="Mars Exploration Program"
144-
message="How should we refer to you?">
143+
<Dialog title="Programa de exploración de Marte"
144+
message="Cómo debemos llamarte?">
145145
<input value={this.state.login}
146146
onChange={this.handleChange} />
147147
<button onClick={this.handleSignUp}>
148-
Sign Me Up!
148+
¡Apúntame!
149149
</button>
150150
</Dialog>
151151
);
@@ -156,17 +156,17 @@ class SignUpDialog extends React.Component {
156156
}
157157
158158
handleSignUp() {
159-
alert(`Welcome aboard, ${this.state.login}!`);
159+
alert(`Bienvenido abordo, ${this.state.login}!`);
160160
}
161161
}
162162
```
163163

164-
[**Try it on CodePen**](https://codepen.io/gaearon/pen/gwZbYa?editors=0010)
164+
[**Pruébalo en CodePen**](https://codepen.io/gaearon/pen/gwZbYa?editors=0010)
165165

166-
## So What About Inheritance? {#so-what-about-inheritance}
166+
## ¿Entonces qué pasa con la herencia? {#so-what-about-inheritance}
167167

168-
At Facebook, we use React in thousands of components, and we haven't found any use cases where we would recommend creating component inheritance hierarchies.
168+
En Facebook usamos React en miles de componentes, y no hemos hallado ningún caso de uso en el que recomendaríamos crear jerarquías de herencia de componentes.
169169

170-
Props and composition give you all the flexibility you need to customize a component's look and behavior in an explicit and safe way. Remember that components may accept arbitrary props, including primitive values, React elements, or functions.
170+
Las props y la composición te dan toda la flexibilidad que necesitas para personalizar el aspecto y el comportamiento de un componente de forma explícita y segura. Recuerda que los componentes pueden aceptar props arbitrarias, incluyendo valores primitivos, elementos de React y funciones.
171171

172-
If you want to reuse non-UI functionality between components, we suggest extracting it into a separate JavaScript module. The components may import it and use that function, object, or a class, without extending it.
172+
Si quieres reutilizar funcionalidad que no es de interfaz entre componentes, sugerimos que la extraigas en un módulo de JavaScript independiente. Los componentes pueden importarlo y usar esa función, objeto, o clase, sin extenderla.

0 commit comments

Comments
 (0)