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)
我想这与它有关,但我无法弄清楚。请问有人可以帮我解释一下吗?
只是具体来说。上面注释中链接中的文档(值得一读),您可以将 .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)