Skip to content
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

docs(es): May 1 #68

Draft
wants to merge 3 commits into
base: spanish-translation
Choose a base branch
from
Draft
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion src/api/component-instance.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ API para crear watchers.

- **Detalles**

El primer argumento es el nombre de la propiedad a observar. Puede ser el nombre (string) de una propiedad del componente, una simple cadena delimitada por puntos, o una función getter.
El primer argumento es el nombre de la propiedad a observar. Puede ser el nombre (string) de una propiedad del componente, una simple cadena delimitada por puntos, o una [función getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description)..

El segundo argumento es la función de callback. El callback recibe el nuevo calor y el valor anterior de la propiedad observada.

Expand Down
2 changes: 1 addition & 1 deletion src/api/reactivity-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Toma un valor interno y devuelve un objeto ref reactivo y mutable, que tiene una

## computed() {#computed}

Toma una función getter y devuelve un objeto [ref](#ref) reactivo de solo lectura para el valor devuelto por el getter. También puede tomar un objeto con funciones `get` y `set` para crear un objeto ref escribible.
Toma una [función getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set#description) y devuelve un objeto [ref](#ref) reactivo de solo lectura para el valor devuelto por el getter. También puede tomar un objeto con funciones `get` y `set` para crear un objeto ref escribible.

- **Tipo**

Expand Down
11 changes: 7 additions & 4 deletions src/api/reactivity-utilities.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,12 @@ Se puede utilizar en [Composables](/guide/reusability/composables.html) para nor
import type { MaybeRefOrGetter } from 'vue'

function useFeature(id: MaybeRefOrGetter<number>) {
watch(() => toValue(id), id => {
// Reaccionar a cambios del id
})
watch(
() => toValue(id),
(id) => {
// Reaccionar a cambios del id
}
)
}

// este composable admite cualquiera de los siguientes:
Expand Down Expand Up @@ -237,7 +240,7 @@ Comprueba si un objeto es un proxy creado por [`reactive()`](./reactivity-core#r
- **Tipo**

```ts
function isProxy(value: unknown): boolean
function isProxy(value: any): boolean
```

## isReactive() {#isreactive}
Expand Down
2 changes: 1 addition & 1 deletion src/glossary/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ En un contexto de Vue, la reactividad se utiliza para describir una colección d

Hay varias formas diferentes en que se podría implementar un sistema de reactividad. Por ejemplo, podría hacerse mediante el análisis estático del código para determinar sus dependencias. Sin embargo, Vue no emplea ese tipo de sistema de reactividad.

En cambio, el sistema de reactividad de Vue realiza un seguimiento del acceso a las propiedades en tiempo de ejecución. Esto se hace utilizando envolturas Proxy y funciones getter/setter para las propiedades.
En cambio, el sistema de reactividad de Vue realiza un seguimiento del acceso a las propiedades en tiempo de ejecución. Esto se hace utilizando envolturas Proxy y funciones [getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set#description)/[setter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set#description) para las propiedades.

Para más detalles, consulta:

Expand Down
38 changes: 10 additions & 28 deletions src/guide/best-practices/accessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,16 +116,16 @@ Los usuarios pueden navegar por una aplicación a través de los títulos. Tener

Los [puntos de referencia](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/landmark_role) proporcionan acceso programático a las secciones de una aplicación. Los usuarios que dependen de la tecnología de asistencia pueden navegar a cada sección de la aplicación y saltarse el contenido. Puedes usar los [roles ARIA](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles) para ayudarte a conseguirlo.

| HTML | Rol ARIA | Objetivos del punto de referencia |
| --------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| header | role="banner" | Encabezado principal: título de la página |
| nav | role="navigation" | Colección de enlaces para navegar por el documento o por los documentos relacionados |
| main | role="main" | El contenido principal o central del documento. |
| footer | role="contentinfo" | Información sobre el documento principal: notas a pie de página/derechos de autor/enlaces a la declaración de privacidad |
| aside | role="complementary" | Apoya el contenido principal, pero está separado y es significativo en su propio contenido |
| search | role="search" | Esta sección contiene la funcionalidad de búsqueda de la aplicación |
| form | role="form" | Colección de elementos asociados al formulario |
| section | role="region" | Contenido que es relevante y al que los usuarios probablemente querrán navegar. Se debe proporcionar una etiqueta para este elemento |
| HTML | Rol ARIA | Objetivos del punto de referencia |
| ------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| header | role="banner" | Encabezado principal: título de la página |
| nav | role="navigation" | Colección de enlaces para navegar por el documento o por los documentos relacionados |
| main | role="main" | El contenido principal o central del documento. |
| footer | role="contentinfo" | Información sobre el documento principal: notas a pie de página/derechos de autor/enlaces a la declaración de privacidad |
| aside | role="complementary" | Apoya el contenido principal, pero está separado y es significativo en su propio contenido |
| search | role="search" | Esta sección contiene la funcionalidad de búsqueda de la aplicación |
| form | role="form" | Colección de elementos asociados al formulario |
| section | role="region" | Contenido que es relevante y al que los usuarios probablemente querrán navegar. Se debe proporcionar una etiqueta para este elemento |

:::tip Tip:
Se recomienda utilizar elementos HTML de referencia con atributos de roles de referencia redundantes para maximizar la compatibilidad con [navegadores antiguos que no admiten elementos semánticos de HTML5](https://caniuse.com/#feat=html5semantic).
Expand Down Expand Up @@ -154,8 +154,6 @@ Las etiquetas generalmente se colocan en la parte superior o a la izquierda de l
</form>
```

<!-- <common-codepen-snippet title="Simple Form" slug="dyNzzWZ" :height="368" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

Observa cómo puedes incluir `autocomplete='on'` en el elemento del formulario y se aplicará a todas las entradas de texto en tu formulario. También puedes establecer diferentes [valores para el atributo de autocompletar](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) por cada entrada de texto.

### Etiquetas {#labels}
Expand All @@ -167,8 +165,6 @@ Proporciona etiquetas para describir el propósito de todos los controles del fo
<input type="text" name="name" id="name" v-model="name" />
```

<!-- <common-codepen-snippet title="Form Label" slug="XWpaaaj" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

Si inspeccionas este elemento en tus herramientas de desarrollo de Chrome y abres la pestaña Accesibilidad dentro de la pestaña Elementos, verás cómo la entrada de texto obtiene su nombre de la etiqueta:

![Las herramientas de desarrollo de Chrome muestran el nombre accesible de la etiqueta](./images/AccessibleLabelChromeDevTools.png)
Expand Down Expand Up @@ -201,8 +197,6 @@ También puedes dar a la entrada un nombre accesible con [`aria-label`](https://
/>
```

<!-- <common-codepen-snippet title="Form ARIA label" slug="NWdvvYQ" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

No dudes en inspeccionar este elemento en Chrome DevTools para ver cómo ha cambiado el nombre accesible:

![Las herramientas de desarrollo de Chrome muestran el nombre accesible de aria-label](./images/AccessibleARIAlabelDevTools.png)
Expand Down Expand Up @@ -233,8 +227,6 @@ Usar [`aria-labelledby`](https://developer.mozilla.org/en-US/docs/Web/Accessibil
</form>
```

<!-- <common-codepen-snippet title="Form ARIA labelledby" slug="MWJvvBe" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

![Las herramientas de desarrollo de Chrome muestran el nombre accesible de aria-labelledby](./images/AccessibleARIAlabelledbyDevTools.png)

#### `aria-describedby` {#aria-describedby}
Expand Down Expand Up @@ -265,8 +257,6 @@ Usar [`aria-labelledby`](https://developer.mozilla.org/en-US/docs/Web/Accessibil
</form>
```

<!-- <common-codepen-snippet title="Form ARIA describedby" slug="gOgxxQE" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

Puedes ver la descripción inspeccionando en Chrome DevTools:

![Las herramientas de desarrollo de Chrome muestran el nombre accesible de aria-labelledby y la descripción con aria-describedby](./images/AccessibleARIAdescribedby.png)
Expand Down Expand Up @@ -351,8 +341,6 @@ También puedes adjuntar las instrucciones a la entrada con [`aria-describedby`]
</fieldset>
```

<!-- <common-codepen-snippet title="Form Instructions" slug="WNREEqv" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

### Ocultar Contenidos {#hiding-content}

Por lo general, no se recomienda ocultar visualmente las etiquetas, incluso si la entrada tiene un nombre accesible. Sin embargo, si la funcionalidad de la entrada se puede entender con el contenido adyacente, entonces podemos ocultar la etiqueta visual.
Expand Down Expand Up @@ -385,8 +373,6 @@ Podemos usar CSS para ocultar visualmente los elementos, pero mantenerlos dispon
}
```

<!-- <common-codepen-snippet title="Form Search" slug="QWdMqWy" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

#### `aria-hidden="true"` {#aria-hidden-true}

Agregar `aria-hidden="true"` ocultará el elemento de la tecnología de asistencia pero lo dejará visualmente disponible para otros usuarios. No lo utilices en elementos enfocables, sólo en contenidos decorativos, duplicados o fuera de pantalla.
Expand All @@ -412,8 +398,6 @@ Cuando se utilizan botones dentro de un formulario, se debe establecer el tipo p
</form>
```

<!-- <common-codepen-snippet title="Form Buttons" slug="JjEyrYZ" :height="467" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

### Imágenes Funcionales {#functional-images}

- Campos de entrada
Expand Down Expand Up @@ -446,8 +430,6 @@ Cuando se utilizan botones dentro de un formulario, se debe establecer el tipo p
</form>
```

<!-- <common-codepen-snippet title="Functional Images" slug="jOyLGqM" :height="265" tab="js,result" theme="light" :preview="false" :editable="false" /> -->

## Estándares {#standards}

La Iniciativa de Accesibilidad a la Web (WAI) del World Wide Web Consortium (W3C) desarrolla estándares de accesibilidad a la web para los diferentes componentes:
Expand Down
2 changes: 1 addition & 1 deletion src/guide/essentials/computed.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ const publishedBooksMessage = computed(() => {

[Pruébalo en la Zona de Práctica](https://play.vuejs.org/#eNp1kE9Lw0AQxb/KI5dtoTainkoaaREUoZ5EEONhm0ybYLO77J9CCfnuzta0vdjbzr6Zeb95XbIwZroPlMySzJW2MR6OfDB5oZrWaOvRwZIsfbOnCUrdmuCpQo+N1S0ET4pCFarUynnI4GttMT9PjLpCAUq2NIN41bXCkyYxiZ9rrX/cDF/xDYiPQLjDDRbVXqqSHZ5DUw2tg3zP8lK6pvxHe2DtvSasDs6TPTAT8F2ofhzh0hTygm5pc+I1Yb1rXE3VMsKsyDm5JcY/9Y5GY8xzHI+wnIpVw4nTI/10R2rra+S4xSPEJzkBvvNNs310ztK/RDlLLjy1Zic9cQVkJn+R7gIwxJGlMXiWnZEq77orhH3Pq2NH9DjvTfpfSBSbmA==)

Aquí hemos declarado la propiedad computada `publishedBooksMessage`. La función `computed()` espera que se le pase una función getter, y el valor devuelto es una **ref computada**. Al igual que con las refs normales, se puede acceder al resultado calculado como `publishedBooksMessage.value`. Las refs computadas también se desenvuelven automáticamente en las plantillas, por lo que se puede hacer referencia a ellas sin `.value` en las expresiones de las plantillas.
Aquí hemos declarado la propiedad computada `publishedBooksMessage`. La función `computed()` espera que se le pase una [función getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description), y el valor devuelto es una **ref computada**. Al igual que con las refs normales, se puede acceder al resultado calculado como `publishedBooksMessage.value`. Las refs computadas también se desenvuelven automáticamente en las plantillas, por lo que se puede hacer referencia a ellas sin `.value` en las expresiones de las plantillas.

Una propiedad computada rastrea automáticamente sus dependencias reactivas. Vue es consciente de que el cálculo de `publishedBooksMessage` depende de `author.books`, por lo que actualizará cualquier enlace que dependa de `publishedBooksMessage` cuando cambie `author.books`.

Expand Down
9 changes: 6 additions & 3 deletions src/guide/essentials/watchers.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ export default {
data() {
return {
question: '',
answer: 'Las preguntas suelen contener un signo de interrogación. ;-)',
answer:
'Las preguntas suelen contener un signo de interrogación. ;-)',
loading: false
}
},
Expand Down Expand Up @@ -76,7 +77,9 @@ Con la Composition API, podemos usar la [función `watch`](/api/reactivity-core#
import { ref, watch } from 'vue'

const question = ref('')
const answer = ref('Las preguntas suelen contener un signo de interrogación. ;-)')
const answer = ref(
'Las preguntas suelen contener un signo de interrogación. ;-)'
)
const loading = ref(false)

// watch funciona directamente sobre una ref
Expand Down Expand Up @@ -109,7 +112,7 @@ watch(question, async (newQuestion, oldQuestion) => {

### Observar Tipos de Fuentes {#watch-source-types}

El primer argumento de `watch` pueden ser diferentes tipos de "fuentes" reactivas: puede ser una ref (incluyendo refs computadas), un objeto reactivo, una función getter, o un array de múltiples fuentes:
El primer argumento de `watch` pueden ser diferentes tipos de "fuentes" reactivas: puede ser una ref (incluyendo refs computadas), un objeto reactivo, una [función getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description), o un array de múltiples fuentes:

```js
const x = ref(0)
Expand Down
2 changes: 1 addition & 1 deletion src/guide/extras/reactivity-in-depth.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Esta función `whenDepsChange()` tiene las siguientes tareas:

Realmente no podemos hacer un seguimiento de la lectura y escritura de variables locales como en el ejemplo. No hay ningún mecanismo para hacerlo en JavaScript. Lo que sí **podemos** hacer es interceptar la lectura y escritura de las **propiedades de los objetos**.

Hay dos maneras de interceptar el acceso a las propiedades en JavaScript: [getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) / [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set) y [Proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy). Vue 2 utilizaba exclusivamente getter / setters debido a las limitaciones de soporte del navegador. En Vue 3, se utilizan Proxies para los objetos reactive y getter / setters para los refs. Aquí hay un pseudocódigo que ilustra cómo funcionan:
Hay dos maneras de interceptar el acceso a las propiedades en JavaScript: [getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description) / [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set#description) y [Proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy). Vue 2 utilizaba exclusivamente getter / setters debido a las limitaciones de soporte del navegador. En Vue 3, se utilizan Proxies para los objetos reactive y getter / setters para los refs. Aquí hay un pseudocódigo que ilustra cómo funcionan:

```js{4,9,17,22}
function reactive(obj) {
Expand Down
2 changes: 1 addition & 1 deletion src/guide/reusability/composables.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ const { data, error } = useFetch(url)
url.value = '/new-url'
```

O, aceptar una función getter:
O, aceptar una [función getter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description):

```js
// nuevo fetch cuando cambie props.id
Expand Down