//这是没有用ts语法接收的props参数 defineProps({ color: String, size: { type: String, required: false, default: 'middle' }, }) //TS语法 //格式:withDefaults(defineProps<类型>(), { 默认值名:默认值}) 第一种写法: withDefaults(defineProps<{ color: string, size?: string }>(),{ size: 'middle' }) 第二种写法:通过解构设置默认值 const { color, size = 'middle' } = defineProps<{ color: string, size?: string }>() //但这样会丢失数据 的响应式 // 解决办法: 下载 npm i -D @vue-macros/reactivity-transform // 在vite.config.js里配置 // import ReactivityTransform from '@vue-macros/reactivity-transform/vite' // export default defineConfig({ // plugins: [ReactivityTransform()], // }) 第三种无默认值写法:这种是没有默认值不需要下载,不会丢失响应式 const props = defineProps<{ color: string, size?: string }>() const { color, size = 'middle' } = props console.log(color, size);
标签:const,color,middle,vue3,注解,默认值,defineProps,size From: https://www.cnblogs.com/whenwei123/p/18257397