@sergeyviktorovich

Что означают 3 точки впереди функции во vue шаблоне?

import { mapActions, mapGetters } from 'vuex';

export default {
    name: 'ViewDataList',
    props: {
        status: String,
    },
    computed: {
        ...mapGetters(['dataList', 'currentItem'])
    },
    methods: {
        ...mapActions(['loadData', 'setCurrentItem', 'moveBack', 'loadDataItemInfo', 'resetQuery']),

        selectItem(event) {
            const id = event.target.dataset.id;
            this.setCurrentItem(id);

            if (this.status == 'modal') {
                this.loadDataItemInfo();
            }
        },

        resetItem() {
            this.resetQuery();
        },

        nextStep() {
            this.$emit('nextStep');
        }
    },
    created() {
        this.loadData();
    },
}
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 3
0xD34F
@0xD34F Куратор тега JavaScript
Это означает, что вы не знаете js.

Да и в целом - плохо понимаете смысл используемых вами слов. Какой шаблон, вы чего? Шаблон vue - это html, который компилируется в render-функцию. А вы что показали?
Ответ написан
@Mellorn
Это деструктуризация.

Но я согласен с 0xD34F, все такие вопросы от нечтения документации. В доке по Vuex говорится о том, что это такое и зачем нужно.
Ответ написан
@megakor
PHP погроммист | Vue авантюрист | ru.sarvarov.dev
mapActions и mapGetters (а ещё часто бывает mapState и mapMutations) - это методы Vuex, которые позволяют обращаться к функционалу хранилища vuex в контексте текущего компонента. По сути только делает код более красивым.

Например, в вашем примере есть loadData в mapActions. В таком случае можно обратиться просто this.loadData();

Если без этого, то пришлось бы писать такой длинный и некрасивый код: this.$store.dispatch('loadData');

Читайте документацию по Vuex.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽