← [ BACK_TO_NOTES ]

vue中props和emit的定义方法总结

Vue 中 defineProps、withDefaults 与 defineEmits 的常见写法速查。

#frame #vue3 #snippet #growing

vue中props和emit的定义方法总结

[!info] related notes


Composition API + defineProps

// 基础形式
const props = defineProps<{
  visible: boolean;
  task: TaskInstance;
}>();

// 带默认值
const props = withDefaults(defineProps<{
  visible?: boolean;
  title?: string;
  count?: number;
}>(), {
  visible: false,
  title: '默认标题',
  count: 0
});

// 运行时声明
const props = defineProps({
  visible: Boolean,
  task: Object as PropType<TaskInstance>
});

// 基础形式
const emit = defineEmits(['close', 'save']);

// TypeScript 类型定义
const emit = defineEmits<{
  (e: 'close'): void;
  (e: 'save', data: TaskData): void;
  (e: 'update', id: string, value: any): void;
}>();

// 运行时声明带验证
const emit = defineEmits({
  close: null,
  save: (payload: TaskData) => {
    return payload && typeof payload.id === 'string'
  }
});
创建于 2025/1/1 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本