No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
3 Hrs
20 Min
2 Seg

State

6/19
Recursos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

En composition API no es necesario utilizar el mapState, pues ya en Vue3 y Vue4, la composition API provee para Vuex poder utilizar directamente una propiedad computada reactiva que reemplaza a $store.state:

State

El state se refiere al objeto que contiene el estado centralizado de la aplicación. Este estado se puede acceder y actualizar desde cualquier componente de la aplicación que esté utilizando Vuex.
.
El objeto state es una instancia reactiva, lo que significa que cualquier cambio que se realice en el objeto será automáticamente reflejado en cualquier componente que esté utilizando ese estado.
.
Para definir el objeto state en Vuex, se crea un objeto JS en el archivo index.js (o cualquier otro archivo donde se defina el store de Vuex) y se exporta como un módulo Vuex. El objeto state en Vuex es un objeto plano de JS que contiene las propiedades del estado de la aplicación.

Por ejemplo, si se quiere almacenar el nombre y la edad de un usuario en el objeto State, se podría definir así;

import { createStore } from "vuex";

const store = createStore({
  state: {
    usuario: {
      nombre: "",
      edad: 0
    }
  }
})

export default store;

En este ejemplo, el objeto State contiene una propiedad llamada “usuario”, que es un objeto que tiene dos propiedades: “nombre” y “edad”.
.
Para acceder a los valores del objeto State desde las props de un componente, primero se debe importar la función **mapState** de Vuex. Luego, se utiliza la función mapState para mapear el objeto State a las propiedades computadas del componente.
.
Para acceder al valor de “nombre” del objeto State en las props de un componente, se podría hacer lo siguiente:

<template>
  <div>
    <p>Nombre: {{ nombre }}</p>
  </div>
</template>

<script>
import { mapState } from 'vuex'

export default {
  props: {
    // Props del componente
  },
  computed: {
    ...mapState({
      nombre: state => state.usuario.nombre
    })
  }
}
</script>

En este ejemplo, se utiliza la función mapState para mapear la propiedad “nombre” del objeto State a una propiedad computada del componente llamada “nombre”. Luego, se utiliza la propiedad “nombre” en el template del componente para mostrar el valor del nombre del usuario.
.
Otra forma sería dentro del template:

<!-- como contenido -->
<p> {{ $store.state.usuario.nombre }} </p>

Formas de acceder a variables del store:

Desde el template

<p><!-- como contenido -->
	{{ $store.state.variable }}
</p>

<!-- como atributo de una etiqueta -->
<tag :attr="$store.state.variable" />

Desde variables computadas con la sintaxis OptionsApi

import { mapState } from "vuex";

export default {
	computed: {
		// opción 1
		variable() {
			return this.$store.state.variable;
		},

		// opción 2
		...mapState({
			variable: (state) => state.variable
		}),

		// opción 3 (alias)
		...mapState(["variable"]),
	},
};

Simplificacion en su maxima expresion

computed: {
  ...mapState(['username'])
}

Otra forma de darle un alias a las propiedades de mapState es usando un string.

Esto:

computed: mapState({
	username: (state) => state.username
 })

Es lo mismo que esto:

computed: mapState({
	username: 'username'
 })

Pasando la cadena de texto ’username’ es lo mismo que decir state => state.username