首页 > 其他分享 >vue3的defineProps接收类型注解

vue3的defineProps接收类型注解

时间:2024-06-19 21:11:16浏览次数:19  
标签:const color middle vue3 注解 默认值 defineProps size

 //这是没有用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

相关文章

  • vue3标签模板上的ref类型注解
    子组件<scriptsetuplang="ts">import{ref,defineExpose}from'vue';constnum=ref<number>(10)defineExpose({num,//把值暴露出去,父级可以通过ref获取})</script><template><h1>我是组件</h1></template&g......
  • 自定义注解(Annotation)详解
    什么是注解Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。Annotation(注解)是JDK5.0及以后版本引......
  • 自定义注解枚举值校验
    自定义注解枚举值校验1.定义注解@Constraint(validatedBy=InEnumConstraintValidator.class)@Documented@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public@interfaceInEnum{ /** *提示的message *@returnmessage */ Stringmessage(......
  • nuxt3+vue3+vite+TS实现国际化
    前言博主最近打算用Nuxt3重构了自己SSR博客,打算添加国际化功能,众所周知,实现国际化已是一个很常见的功能。用户可以根据自己的喜好,设置页面的自己合适的语言,从而实现国际化浏览。这样用户体验度会大大提升。博客用的nuxt3+vue3+vite+TS实现国际化,国际化用的vue-i18n,下面我给大......
  • Vue3如何绑定全局方法和变量
    Vue2中Vue.prototype绑定全局方法,此写法在Vue3已经不存在了。与任何全局的东西一样,应该谨慎使用。Vue3使用provide/inject或者app.config.globalProperties进行绑定如果全局属性与组件自己的属性冲突,组件自己的属性将具有更高的优先级。 一、provide/inject方法......
  • Vue3鼠标悬浮个人头像时出现修改头像,点击出现弹框,上传头像使用cropperjs可裁剪预览
    实现效果:鼠标悬浮到头像上,下方出现修改头像点击修改头像出现弹框,弹框中可上传头像,并支持头像的裁剪及预览 实现方式: 1.tempalte中<divclass="img-box"> <imgv-if="avatarImgUrl":src="avatarImgUrl"class="avatar"/> <divclass="text"@......
  • 【Spring注解】事务注解@Transactional
    @Transactional作用:就是在当前这个方法执行开始之前来开启事务,方法执行完毕之后提交事务。如果在这个方法执行的过程当中出现了异常,就会进行事务的回滚操作@Transactional注解书写位置:方法当前方法交给spring进行事务管理类当前类中所有的方法都交由spring进行事务管......
  • vue3cron表达式
     引用:js部分importcmCronfrom'../../components/cmCron/index.vue';constshortcuts=[     {      text:"每天8点和12点(自定义追加)",      value:"008,12**?"     }    ]; 模板部分: ......
  • VSCode 中 Vue3:找不到模块 “./XXX.vue” 或其相应的类型声明
    问题!代码可以正常运行,但VSCode报错:找不到模块“./App.vue”或其相应的类型声明别再去愚昧的添加d.ts啦!只需在VSCode安装TypeScriptVuePlugin(Volar)拓展享受完全体的Vue导入!......
  • javab每日一题:在spring里有哪些常用注解?
     Spring框架提供了许多注解,用于简化配置、管理Bean、处理事务、处理AOP等。以下是一些在Spring中常用的注解以及它们的作用:@ComponentScan:作用:用于启用组件扫描,指定要扫描的基础包。Spring会自动扫描并注册带有@Component及其派生注解(@Service、@Repository、@Controller......