是否可以使用内联 $emitted 参数?

WoJ*_*WoJ 3 vue.js vue-component

在以下代码中,单击组件会向父级发出信号,父级会内联修改其状态(在某种意义上 - 不是通过处理程序):

Vue.component('my-component', {
  template: '<div v-on:click="emitit">click on the component</div>',
  methods: {
    emitit: function() {
      this.$emit('mysignal', 7)
    }
  }
})

new Vue({
  el: "#root",
  data: {
    from: 0
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
<div id="root">
  <my-component v-on:mysignal="from=5"></my-component>
  from component: {{ from }}
</div>
Run Code Online (Sandbox Code Playgroud)

是否有可能访问通过所提供的参数$emit直接v-on:mysignal="..."

我知道我可以使用在主 Vue 组件中定义的处理程序,但我想简化我的代码并避免在methods.

Ikb*_*bel 5

是的,像这样:

<my-component v-on:mysignal="value => from = value"></my-component>
Run Code Online (Sandbox Code Playgroud)

<my-component v-on:mysignal="value => from = value"></my-component>
Run Code Online (Sandbox Code Playgroud)
Vue.component('my-component', {
  template: '<div v-on:click="emitit">click on the component</div>',
  methods: {
    emitit: function() {
      this.$emit('mysignal', 7)
    }
  }
})

new Vue({
  el: "#root",
  data: {
    from: 0
  }
});
Run Code Online (Sandbox Code Playgroud)