Поиск по сайту
Ctrl + K
Вопросы по Vue

Что такое помощник mapGetter?

В Vue.js, когда вы работаете с управлением состоянием через Vuex, удобно использовать помощники, такие как mapGetters. Это позволяет вам легко и эффективно получать доступ к состоянию хранилища в ваших компонентах.

Что такое mapGetters?

mapGetters — это функция из Vuex, которая помогает вам автоматически связывать геттеры из вашего хранилища с вычисляемыми свойствами вашего компонента. Это сокращает код, упрощает его понимание и делает ваш компонент более чистым.

Пример использования

Предположим, у вас есть Vuex хранилище, в котором есть геттер, возвращающий список задач:

// store.js
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const store = new Vuex.Store({
    state: {
        tasks: [
            {id: 1, title: 'Задача 1', completed: false},
            {id: 2, title: 'Задача 2', completed: true},
        ],
    },
    getters: {
        completedTasks(state) {
            return state.tasks.filter(task => task.completed);
        },
        allTasks(state) {
            return state.tasks;
        },
    },
});

Теперь, если вы хотите получить доступ к этим геттерам в вашем компоненте, вы можете использовать mapGetters.

Использование mapGetters в компоненте

<template>
    <div>
        <h1>Все задачи</h1>
        <ul>
            <li v-for="task in allTasks"
            :key="task.id">
            {{task.title}} - {{task.completed ? 'Выполнена' : 'Не выполнена'}}
        </li>
    </ul>

    <h2>Выполненные задачи</h2>
    <ul>
        <li v-for="task in completedTasks"
        :key="task.id">
        {{task.title}}
    </li>
</ul>
</div>
</template>

<script>
    import {mapGetters} from 'vuex';

    export default {
    computed: {
    ...mapGetters(['allTasks', 'completedTasks']),
},
};
</script>

<style scoped>
    /* Ваши стили */
</style>

Как это работает?

  • Импортируем mapGetters: В компоненте мы импортируем mapGetters из vuex.
  • Создаем вычисляемые свойства: В секции computed мы используем mapGetters и передаем туда массив с названиями геттеров, которые хотим использовать (allTasks и completedTasks).
  • Используем в шаблоне: Теперь мы можем использовать allTasks и completedTasks прямо в нашем шаблоне, чтобы отображать задачи.
  • Заключение

    Использование mapGetters в Vuex позволяет вам писать более понятный и поддерживаемый код. Это особенно полезно в больших приложениях, где управление состоянием может стать сложным. Надеюсь, это поможет вам лучше понять, как работать с состоянием приложения в Vue.js!

    Содержание:
    Редактировать