何时在 Vue 发出名称中使用冒号?

Mag*_*ern 7 events eventemitter vue.js

所以,我试图理解别人编写的代码,但有一件事我还没有弄清楚。为什么要在发出名称中使用冒号?这是一个例子:

this.$emit('update:compare', { key, values })
Run Code Online (Sandbox Code Playgroud)

问题是我找不到监听此发出的组件。我一直在寻找v-on:update:compare=""@update:compare=""但找不到。结肠到底有什么作用?

我在与发出的组件相同的组件中发现了我也不认识的其他东西:

  model: {
    prop: 'compare',
    event: 'update:compare',
  },
Run Code Online (Sandbox Code Playgroud)

我想这与它有关,但我无法弄清楚。请问有人可以帮我解释一下吗?

LMK*_*LMK 0

只是具体来说。上面注释中链接中的文档(值得一读),您可以将 .sync 添加到 v-bind,以便允许 props 自动“向上”传递回父级(2 路绑定)。直到我开始深入研究 vue 查询构建器库并遇到与 OP 完全相同的问题之前,我也没有意识到这一点。https://github.com/dabernathy89/vue-query-builder

<some-component :someData.sync="someData" />


// Inside component method:
this.$emit('update:someData', "New value");
Run Code Online (Sandbox Code Playgroud)