Los getters prácticamente vienen siendo lo mismo que las propiedades computadas de Vue.js, con la diferencia que no pertenecen a un componente como tal, sino al manejo de estado.
Introducción
¿Qué es VUEX y para qué sirve?
Manejo de estado
Patrón FLUX
Conceptos básicos
Instalación y boilerplate de Vuex
Estado simple con Options API
State
Getters
Mutations
Actions
Organización de código
Helpers
Modules
Espacios de nombres
Modelo de datos
Caso de uso: ChatApp con Vuex
Normalización
Canales
Mensajes
Canales y Mensajes
Contactos
Cierre del curso
Despedida
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Diana Martínez
Aportes 7
Preguntas 0
Los getters prácticamente vienen siendo lo mismo que las propiedades computadas de Vue.js, con la diferencia que no pertenecen a un componente como tal, sino al manejo de estado.
yo lo veo de esta manera
state = data
getters = methods
jajaja :V
Los getters son funciones que nos permiten obtener datos del estado de la aplicación de una manera más estructurada y organizada.
.
Se definen dentro de la sección getters
del objeto store de Vuex y pueden ser accedidos desde cualquier componente de la aplicación que esté conectado al store. La sintaxis para definir un getter es la siguiente:
import { createStore } from "vuex";
const store = createStore({
state: {
// state variables
},
getters: {
getterName: (state) => {
// getter logic
return someValue
}
},
mutations: {
// mutations
},
actions: {
// actions
}
});
export default store;
El nombre del getter se define como una propiedad del objeto getters, seguido de una función que toma el estado actual como argumento y devuelve un valor calculado basado en ese estado. El valor devuelto por el getter es reactivamente actualizado cada vez que se produce un cambio en el estado.
.
Un ejemplo de uso de getters en Vuex sería el siguiente:
import { createStore } from "vuex";
const store = createStore({
state: {
products: [
{ id: 1, name: 'Product 1', price: 10 },
{ id: 2, name: 'Product 2', price: 20 },
{ id: 3, name: 'Product 3', price: 30 }
]
},
getters: {
getProductById: (state) => (id) => {
return state.products.find(product => product.id === id)
},
getProductsByPrice: (state) => (price) => {
return state.products.filter(product => product.price === price)
}
},
mutations: {
// mutations
},
actions: {
// actions
}
});
export default store;
En este ejemplo, se definen dos getters: getProductById
y getProductsByPrice
.
.
El primero toma un parámetro de entrada “id” y devuelve el objeto de producto correspondiente a ese id. El segundo toma un parámetro de entrada “price” y devuelve un array de objetos de productos que tienen el precio dado. Estos getters pueden ser utilizados en cualquier componente conectado al store para obtener información específica del estado de la aplicación de una manera más sencilla y organizada.
mapGetters
cuando necesites cálculos basados en el estado o para acceder a getters personalizados.mapState
cuando simplemente requieras acceder directamente a las propiedades del estado, especialmente en situaciones de enlace de datos 1:1.const username = computed(() => store.state.username)
const first_name = computed(() => store.getters.first_name)
Una de las ventajas de los getters es que te permiten manipular la información de los datos, sin la necesidad de modificar la forma en la que están estructurados.
createStore({
state() {
return {
variable: val,
};
},
getters: {
resultado(state) {
return (param) => /* Procesar state.variable usando param; */;
},
}.
});
<p>{{ resultado(param) }}</p>
import { mapGetters } from "vuex";
export default {
computed: {
...mapState(["resultado"]),
},
};
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?