Vue3 - 父子组件属性传递

本文介绍了在Vue3中如何进行父子组件间的属性传递。通过`defineProps`定义并设置父组件向子组件传递属性,如`starCount`和`color`,并使用`computed`处理响应式数据。同时,子组件通过`defineEmits`注册自定义事件,如`getValue`,并在事件触发时传递值给父组件。

前言

这节我们主要从案例出发,用Vue3的写法写父子组件之间的属性传递。

一. 组件之间属性的传递

我们定义一个Rate组件,具有以下功能:

  1. 接收来自外部组件传入的参数,starCount代表星星个数。color代表星星颜色。
  2. 需要根据传入星星的个数,展示对应数量的星星。

1.1 父组件传递属性给子组件

那么在编写组件的时候,我们需要注意什么?

  • 我们可以使用defineProps来规范传递数据的格式。可以结合withDefaults来进行默认值的赋值。
  • 如果是响应式数据的传递,在传递给子组件的时候,需要添加前缀 :。如果是常量,则不用。

我们在components目录下创建完Rate.ts文件后。完整代码如下:

<template>
  <div :style="fontstyle">
    {
   
   {
   
    rate }}
  </div>
</template>

<script setup lang="ts">
import {
   
    computed, defineProps, withDefaults } from "vue";

// 定义父组件传入的参数类型
interface Props {
   
   
  starCount: number;
  color: string;
}
// 规定传值类型以及赋上默认值
let props = withDefaults(defineProps<Props>(), {
   
   
  starCount: 0,
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

第七个香粽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值