Как именно синтаксис распространения (...) работает с mapGetters?
Всякий раз, когда вы хотите использовать вычисленный метод получения с помощником mapGetter из Vuex, вы должны использовать его следующим образом:
...mapGetters([
'getter1',
'getter2',
'etc'
])
Я видел оператор распространения, использовавшийся ранее для расширения массивов, которые будут использоваться в качестве аргументов функции, но не перед методом, как мы видим здесь на примере mapGetters
.
Я не могу найти примеры этого синтаксиса, например, при просмотре документации Mozilla:
https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator
Там ничего нет Как именно работает этот синтаксис и этот случай, и может ли кто-нибудь предоставить некоторую документацию по этому вопросу, возможно?
Ответы
Ответ 1
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
Ответ 2
Я пытаюсь уточнить ответ Val с деталями, которые, как я чувствую, были опущены. В вашем примере оператор распространения не используется "перед методом". То, что на самом деле происходит, это применяется к результату 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
Ответ 3
Он используется для слияния свойств объекта с другим объектом. Об этом говорится в документах. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator
В разделе " Spread in object literals
".