$event 是事件对象的特殊变量,在一些场景给我们实现复杂功能提供更多可用的参数。

原生事件

在原生事件中表现和默认事件对象相同。

  1. <template>
  2. <div>
  3. <input type="text" @input="inputHandler('hello,', $event)" />
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. methods: {
  9. inputHandler(msg, e) {
  10. console.log(e.target.value)
  11. },
  12. },
  13. }
  14. </script>

自定义事件

在自定义事件中表现为捕获从子组件抛出的值

  1. <!-- MyItem.vue -->
  2. <script>
  3. export default {
  4. methods: {
  5. customEvent() {
  6. this.$emit('custom-event', 'some value')
  7. },
  8. },
  9. }
  10. </script>
  1. <template>
  2. <div>
  3. <my-item
  4. v-for="(item, index) in list"
  5. @custom-event="customEvent(index, $event)"
  6. />
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. methods: {
  12. customEvent(index, e) {
  13. console.log(e) // 'some value'
  14. },
  15. },
  16. }
  17. </script>

文档:https://cn.vuejs.org/v2/guide/events.html# 内联处理器中的方法 https://cn.vuejs.org/v2/guide/components.html# 使用事件抛出一个值