如何在Vue中使用Props和emit

2023-05-17 14:09:33

如何在Vue中使用Props和emit

在Vue中,父组件向子组件传递数据需要使用props,子组件向父组件传递数据需要使用emit。下面通过一个简单的实例来演示这个过程。

父组件中,定义一个message的变量,然后将这个变量作为props传递给子组件:

<template>
  <div>
    <child-component v-bind:message="message" v-on:message-update="message = $event" />
  </div>
</template>
    
<script>
export default {
  data() {
    return {
      message: 'Hello World!'
    }
  }
}
</script>

在子组件中,定义一个props,然后使用这个props来渲染一个简单的消息:

<template>
  <div>
    <p>{{ message }}</p>
    <button v-on:click="updateMessage">更新消息</button>
  </div>
</template>

<script>
export default {
  props: {
    message: String
  },
  methods: {
    updateMessage() {
      this.$emit('message-update', 'New Message!');
    }
  }
}
</script>

在子组件中,定义一个方法updateMessage,该方法触发一个自定义事件message-update,并将新的消息作为参数传递给自定义事件。

在父组件中,使用v-bind将message变量传递给子组件,并使用v-on将自定义事件message-update绑定到子组件的方法,以便在子组件中更新message变量。

通过使用props和emit,父组件可以向子组件传递数据并接收子组件的事件。这种数据流的方式使得Vue组件之间的通信变得非常容易。
  • 作者:
  • 原文链接:
    更新时间:2023-05-17 14:09:33