Vue 'emits' 选项


示例

使用 emits 选项声明从组件发出哪些自定义事件。

export default {
  emits: ['custom-event'],
  methods: {
    notifyParent() {
      this.$emit('custom-event','Hello! ')
    }
  }
}
运行示例 »

查看下面的更多示例


定义和用法

emits 选项用于记录组件发出的自定义事件。

emits 选项不是必需的,这意味着组件可以发出事件,而无需在 emits 选项中定义事件。

尽管 emits 选项不是必需的,但仍然建议使用它,以便其他程序员可以轻松查看组件发出的内容。

emits 选项以数组形式给出时,该数组仅包含以字符串形式发出的名称。 (参见上面的示例。)

emits 选项作为对象给出时,属性名称是发射的名称,如果有验证器函数,则该值是验证器函数;如果发射没有验证器函数,则值为"null"。 (参见下面的示例。)


更多示例

示例

使用 props 作为带有选项的对象,以便在父组件未提供时显示默认的食物描述。

FoodItem.vue:

<template>
	<div>
		<h2>{{ foodName }}</h2>
		<p>{{ foodDesc }}</p>
	</div>
</template>

<script>
export default {
	props: {
		foodName: {
			type: String,
			required: true
		},
		foodDesc: {
			type: String,
			required: false,
			default: 'This is the food description...'
		}
	}
};
</script>

App.vue:

<template>
  <h1>Food</h1>
  <p>没有为"披萨"和"米饭"提供食物描述,因此使用默认描述。</p>
  <div id="wrapper">
    <food-item 
      food-name="Apples" 
      food-desc="苹果是一种生长在树上的水果。"/>
    <food-item 
      food-name="Pizza"/>
    <food-item 
      food-name="Rice"/>
  </div> 
</template>

<style>
  #wrapper {
    display: flex;
    flex-wrap: wrap;
  }
  #wrapper > div {
    border: dashed black 1px;
    flex-basis: 120px;
    margin: 10px;
    padding: 10px;
    background-color: lightgreen;
  }
</style>
运行示例 »

相关页面

Vue 教程:Vue $emit() 方法

Vue 教程:Vue Props 选项

Vue 参考:Vue $props 对象

Vue 参考:Vue $emit() 方法