内置工具函数 withDefaults

5 阅读1分钟

withDefaults 是 Vue 3 的一个内置工具函数,用于为 defineProps 中的可选参数指定默认值。

语法解释:

const props = withDefaults(defineProps<{
    aaa?: boolean,
    bbb?: boolean,
    ccc?: string,
    ddd?: boolean;
}>(), {
    aaa: false, // 设置默认值
    ccc: '',
    ddd: false,
});

作用:

情况without withDefaultswith withDefaults
父组件不传该 propundefined你设定的默认值

示例:

<!-- 父组件 -->
<father-comp />  <!-- 不传任何参数 -->

在子组件中:

  • props.aaa → false(默认值生效)
  • props.ccc → ''(默认值生效)
  • props.ddd → false(默认值生效)
  • props.bbb → undefined(没有设置默认值)

为什么需要它?

  1. 代码更清晰,明确知道每个 prop 的默认值
  2. 获得更好的 TypeScript 类型推断(默认值会体现在类型中)
  3. 避免 undefined 导致的潜在问题