今天想开发一个vue的组件传值知识点(目前还不知道想要写什么,暂时就是开发放在这里)

Vue组件传值(一天一个小知识点)

可能很多人都是觉得写这些文章是没有什么用的,有的人甚至觉得,写零碎的知识点没什么看头,但是就我实际的工作经验来说,我觉得,很多时候,写零碎的知识点我会像记录我的生活一样记录我的技术点,而且我写一遍我就可以记得住

ok,今天的主角是defineProps,它是一个编解码器函数,用于在单文件组件中定义组件的props。它是在setup标签内使用的一个编译时语法糖,用来声明组件接收的属性。通过defineProps,可以指定哪些数据应该作为prop被传递给组件,并且可以为这些prop定义类型检查和其他选项。

<script setup>
import { defineProps } from 'vue'

// 定义接收的 props
const props = defineProps({
  title: String,
  count: Number,
  isActive: Boolean
})
</script>

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>Count: {{ count }}</p>
    <p>Status: {{ isActive ? 'Active' : 'Inactive' }}</p>
  </div>
</template>

在这个例子中,组件接收三个 prop:title、count 和 isActive,它们分别对应字符串、数字和布尔值。

你还可以为每个 prop 提供更详细的配置,比如默认值、是否必需等:

<script setup>
import { defineProps } from 'vue'

const props = defineProps({
  title: {
    type: String,
    required: true // 必须提供此 prop
  },
  count: {
    type: Number,
    default: 0 // 如果没有提供此 prop,则使用默认值 0
  },
  isActive: {
    type: Boolean,
    default: false // 默认值为 false
  }
})
</script>

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>Count: {{ count }}</p>
    <p>Status: {{ isActive ? 'Active' : 'Inactive' }}</p>
  </div>
</template>

类型推断
当使用 TypeScript 编写 Vue 组件时,defineProps 还可以帮助进行类型推断,确保 props 的类型安全:

<script setup lang="ts">
import { defineProps } from 'vue'

interface Props {
  title: string;
  count: number;
  isActive?: boolean; // 可选 prop
}

const props = defineProps<Props>();
</script>

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>Count: {{ count }}</p>
    <p>Status: {{ isActive ? 'Active' : 'Inactive' }}</p>
  </div>
</template>

在这个例子中,我们使用了 TypeScript 接口来定义 props 的结构,这样可以在开发过程中获得更好的类型检查和支持。

通过这种方式,Vue 3 的 defineProps 不仅简化了代码编写,还增强了代码的可读性和健壮性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值