我正在学习VueJ,在此沙盒https://codesandbox.io/s/o29j95wx9中,有这样的行
<script>
export default {
props: {
value: {
type: String,
default: '',
}
},
computed: {
listeners () {
return {
// Pass all component listeners directly to input
...this.$listeners,
// Override input listener to work with v-model
input: event => this.$emit('input', event.target.value)
}
}
}
}
</script>
...
中的...this.$listeners,
是做什么的?我尝试搜索它,但是每个搜索引擎都会过滤掉该查询。我不知道这叫什么。
我也看到它在vuex中使用过
computed: {
...mapGetters({
currentData: 'viewerGetCurrentDocument',
folders: 'viewerGetFoldersList'
}),
答案 0 :(得分:1)
它是spread operator。它可以将对象或数组解构为其组成的属性或元素,以便可以在通常用逗号分隔的地方使用它们,例如函数参数列表或对象和数组文字内部。
答案 1 :(得分:1)
这称为点差运算符,您可以在此处查看更多信息 https://davidwalsh.name/spread-operator
您可以组合数组并合并对象。
您也可以在函数声明参数中使用它:
function f(...args) {
// args is array here
}
它可以在多种情况下使用,但是您可以在链接中进行研究