Skip to content

Commit 1fda14e

Browse files
authored
Update article.md
1 parent 14dc134 commit 1fda14e

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

8-web-components/2-custom-elements/article.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

22
# Elementos personalizados
33

4-
Podemos crear elementos HTML personalizados, descritos por nuestra clase, con sus propios métodos, propiedades, eventos y demás.
4+
Podemos crear elementos HTML personalizados con nuestras propias clases, con sus propios métodos, propiedades, eventos y demás.
55

6-
Una vez que el elemento personalizado es definido, podemos usarlo a la par de elementos HTML nativos.
6+
Una vez que definimos el elemento personalizado, podemos usarlo a la par de elementos HTML nativos.
77

88
Esto es grandioso, porque el el diccionario HTML es rico pero no infinito. No hay `<aletas-faciles>`, `<gira-carrusel>`, `<bella-descarga>`... Solo piensa en cualquier otra etiqueta que puedas necesitar.
99

@@ -12,7 +12,7 @@ Podemos definirlos con una clase especial, y luego usarlos como si siempre hubie
1212
Hay dos clases de elementos personalizados:
1313

1414
1. **Elementos personalizados autónomos** -- elementos "todo-nuevo", extendiendo la clase abstracta `HTMLElement`.
15-
2. **Elementos incorporados personalizados** -- extendiendo elementos nativos, por ejemplo un botón personalizado basado en `HTMLButtonElement`.
15+
2. **Elementos nativos personalizados** -- extendiendo elementos nativos, por ejemplo un botón personalizado basado en `HTMLButtonElement`.
1616

1717
Primero cubriremos los elementos autónomos, luego pasaremos a la personalización de elementos nativos.
1818

@@ -59,21 +59,21 @@ class MyElement extends HTMLElement {
5959
Después de ello, necesitamos registrar el elemento:
6060

6161
```js
62-
// hacer que el navegador conozca que <my-element> es servido por nuestra nueva clase
62+
// hacer saber al navegador que <my-element> es servido por nuestra nueva clase
6363
customElements.define("my-element", MyElement);
6464
```
6565

66-
A partir de ello, para cada elemento HTML con la etiqueta `<my-element>` se crea una instancia de `MyElement` y los métodos mencionados son llamados. También podemos insertarlo con JavaScript: `document.createElement('my-element')`.
66+
A partir de ello, para cada elemento HTML con la etiqueta `<my-element>` se crea una instancia de `MyElement` y se llaman los métodos mencionados. También podemos insertarlo con JavaScript: `document.createElement('my-element')`.
6767

68-
```smart header="Los elementos personalizados deben incluir un guion `-`"
69-
Los elemento personalizados deben incluir un guion corto `-`. Por ejemplo, `my-element` y `super-button` son nombres válidos, pero `myelement` no lo es.
68+
```smart header="Los nombres de los elementos personalizados deben incluir un guion `-`"
69+
Los elemento personalizados deben incluir un guion corto `-` en su nombre. Por ejemplo, `my-element` y `super-button` son nombres válidos, pero `myelement` no lo es.
7070

71-
Esto es para asegurar que no haya conflicto de nombres entre los elementos nativos y los personalizados.
71+
Esto se hace para asegurar que no haya conflicto de nombres entre los elementos nativos y los personalizados.
7272
```
7373
7474
## Ejemplo: "time-formatted"
7575
76-
Ejemplo: ya existe un elemento `<time>` en HTML para presentar fecha y hora, pero no hace ningún formateo por sí mismo.
76+
Ya existe un elemento `<time>` en HTML para presentar fecha y hora, pero este no hace ningún formateo por sí mismo.
7777
7878
Construyamos el elemento `<time-formatted>` que muestre la hora en un bonito formato y reconozca la configuración de lengua local:
7979
@@ -115,7 +115,7 @@ customElements.define("time-formatted", TimeFormatted); // (2)
115115
></time-formatted>
116116
```
117117

118-
1. La clase tiene un solo método, `connectedCallback()`, que es llamado por el navegador cuando se agrega el elemento `<time-formatted>` a la página (o cuando el analizador HTML lo detecta). Este método usa el formateador de datos nativo [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat), bien soportado por los navegadores, para mostrar una agradable hora formateada.
118+
1. La clase tiene un solo método, `connectedCallback()`, que es llamado por el navegador cuando se agrega el elemento `<time-formatted>` a la página o cuando el analizador HTML lo detecta. Este método usa el formateador de datos nativo [Intl.DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat), bien soportado por los navegadores, para mostrar una agradable hora formateada.
119119
2. Necesitamos registrar nuestro nuevo elemento con `customElements.define(tag, class)`.
120120
3. Y podremos usarlo por doquier.
121121

@@ -128,7 +128,7 @@ Tal elemento "undefined" puede ser estilizado con el selector CSS `:not(:defined
128128
Una vez que `customElement.define` es llamado, estos elementos son "actualizados": para cada elemento, una nueva instancia de `TimeFormatted`
129129
es creada y `connectedCallback` es llamado. Se vuelven `:defined`.
130130
131-
Para obtener información acerca los elementos personalizados, tenemos los métodos:
131+
Para obtener información acerca de los elementos personalizados, tenemos los métodos:
132132
- `customElements.get(name)` -- devuelve la clase del elemento personalizado con el `name` dado,
133133
- `customElements.whenDefined(name)` -- devuelve una promesa que se resuelve (sin valor) cuando un elemento personalizado con el `name` dado se vuelve `defined`.
134134
```
@@ -240,7 +240,7 @@ customElements.define('user-info', class extends HTMLElement {
240240
*/!*
241241
```
242242

243-
Si lo ejecutas, el `alert` está vacío.
243+
Si lo ejecutas, el `alert` estará vacío.
244244

245245
Esto es porque no hay hijos en aquel estadio, pues el DOM no está finalizado. Se conectó el elemento personalizado `<user-info>` y está por proceder con sus hijos, pero no lo hizo aún.
246246

@@ -360,7 +360,7 @@ customElements.define('hello-button', HelloButton, {extends: 'button'});
360360
*/!*
361361
```
362362

363-
Nuestro nuevo botón extiende el 'button' nativo. Así mantenemos los mismos estilos y características estándar, como el atributo `disabled`.
363+
Nuestro nuevo botón extiende el 'button' nativo. Así mantenemos los mismos estilos y características estándar, como por ejemplo el atributo `disabled`.
364364

365365
## Referencias
366366

@@ -397,4 +397,4 @@ Los elementos personalizados pueden ser de dos tipos:
397397
/* <button is="my-button"> */
398398
```
399399

400-
Los elementos personalizados tienen muy buen soporte entre los navegadores. Hay un polyfill <https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs>.
400+
Los elementos personalizados tienen muy buen soporte entre los navegadores. Existe un polyfill <https://github.com/webcomponents/polyfills/tree/master/packages/webcomponentsjs>.

0 commit comments

Comments
 (0)