Vue3中的传值方式与Vue2基本相同,包括父组件向子组件传值和子组件向父组件传值。不同的是,Vue3引入了Composition API,可以使用setup函数来进行传值。

  1. 父组件向子组件传值

父组件可以通过props向子组件传递数据。在子组件中通过props接收数据。

父组件:

<template>
  <div>
    <child-component :message="message"></child-component>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      message: 'Hello World'
    }
  }
}
</script>

子组件:

<template>
  <div>
    {{ message }}
  </div>
</template>
<script>
export default {
  props: {
    message: {
      type: String,
      required: true
    }
  }
}
</script>
  1. 子组件向父组件传值

子组件可以通过emit事件向父组件传递数据。在父组件中通过@监听事件接收数据。

子组件:

<template>
  <div>
    <button @click="sendMessage">Send Message</button>
  </div>
</template>
<script>
export default {
  methods: {
    sendMessage() {
      this.$emit('message', 'Hello World');
    }
  }
}
</script>

父组件:

<template>
  <div>
    <child-component @message="receiveMessage"></child-component>
    <div>{{ message }}</div>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      message: ''
    }
  },
  methods: {
    receiveMessage(msg) {
      this.message = msg;
    }
  }
}
</script>
  1. setup函数传值

setup函数是Vue3中新引入的函数,可以在组件渲染之前执行。通过setup函数可以将数据和方法暴露给模板中使用。

父组件:

<template>
  <div>
    <child-component :message="message" :change-message="handleChangeMessage"></child-component>
    <div>{{ message }}</div>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
import { ref } from 'vue';
export default {
  components: {
    ChildComponent
  },
  setup() {
    const message = ref('Hello World');
    const handleChangeMessage = (msg) => {
      message.value = msg;
    };
    return {
      message,
      handleChangeMessage
    };
  }
}
</script>

子组件:

<template>
  <div>
    <button @click="sendMessage">Send Message</button>
  </div>
</template>
<script>
export default {
  props: ['message', 'changeMessage'],
  methods: {
    sendMessage() {
      this.changeMessage('New Message');
    }
  }
}
</script>

以上是Vue3的传值方式,其中setup函数是Vue3中新引入的函数,可以更加灵活地传值。

vue3的传值

原文地址: http://www.cveoy.top/t/topic/d0n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录