Вопрос:

Как именно работает синтаксис mapGetters?

javascript ecmascript-6 vue.js vuex spread-syntax

5178 просмотра

3 ответа

6768 Репутация автора

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

...mapGetters([
    'getter1', 
    'getter2', 
    'etc'
])

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

Я не могу найти примеры этого синтаксиса, например, при просмотре документации Mozilla:

https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator

Там ничего нет Как именно работает этот синтаксис и этот случай, и может ли кто-нибудь предоставить некоторую документацию по этому вопросу, возможно?

Автор: Stephan-v Источник Размещён: 04.01.2018 08:51

Ответы (3)


0 плюса

159 Репутация автора

Он используется для объединения свойств объекта с другим объектом. Об этом говорится в документации. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator

Под Spread in object literalsразделом.

Автор: Val Cajes Luminarias Размещён: 04.01.2018 09:17

2 плюса

1486 Репутация автора

Я пытаюсь уточнить ответ Вэл с деталями, которые я чувствую, были опущены В вашем примере оператор распространения не используется "перед методом". Что на самом деле происходит, это применяется к результатуmapGetters

Вы можете думать об этом так:

{
    ...{
        getter1: /* a mapped fn from vuex store */,
        getter2: /* a mapped fn from vuex store */,
    }
}

Вы можете прочитать документацию, предоставленную Val Cajes Luminarias, для более подробной информации о том, как оператор распространения работает с литералами объекта. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator

Автор: kmc059000 Размещён: 04.01.2018 05:03

15 плюса

246 Репутация автора

Решение

mapGetters и mapActions являются в основном помощником, предоставляемым vuex, который возвращает объект с ключами в качестве имен методов и значениями в качестве методов с некоторым определенным определением. Этот объект в сочетании с ... (оператор распространения объекта) распространяет его на отдельные функции в вычисляемом объекте или объекте методов соответственно.

Например:-

{
    computed: {
        ...mapGetters([
            'getter1',
            'getter2',
            'getter3'
        ]);
    }
}

{
    computed: {
        getter1() {
            return this.$store.getters.getter1;
        },
        getter2() {
            return this.$store.getters.getter2;
        },
        getter3() {
            return this.$store.getters.getter3;
        },
    }
}

Оба из вышеупомянутых идентичны, так что в основном это несколько возвращает объект определений {getter1, getter2, getter3} и разделяется на отдельные вычисляемые свойства с тем же именем.

Вы также можете обратиться к этим URL-адресам:

https://www.youtube.com/watch?v=SaBnaGu7cP8&list=PL4cUxeGkcC9i371QO_Rtkl26MwtiJ30P2&index=8

https://vuex.vuejs.org/en/getters.html

Автор: fullmetal Размещён: 07.01.2018 01:49
Вопросы из категории :
32x32