https://blog.csdn.net/weixin_44922480/article/details/127337914

https://blog.csdn.net/m0_63108819/article/details/125534809

defineProps

使用PropType类型验证

⽤⼀句简单的话来说,就是为了类型推论,让我们在使⽤属性的时候获取更丰富的类型提⽰,⽐如在这⾥我们定义了⼀个属性 list,使⽤ vue默认的 Array,只能确定它是⼀个数组类型,不能确定数组⾥⾯的每⼀项到底是什么样⼦的。你在 setup 中,看 props.list 就是⼀个any数组,但是如果使⽤PropType <ColumnProps[]> 这个时候,props.list 就变成⼀个 ColumnProps 的数组,你使⽤它的时候不论在 ts 中还是模版中都能获得类型的推断和⾃动补全等等。

Array 可以写成 Array as PropType<oneType[]>

Object 可以写成 Object as PropType

然后你可以定义你的type oneType = {}

//子组件

import { PropType, defineProps } from 'vue'

interface ColumnProps{
id: string;
title: string;
avatar: string;
description: string;
} const props = defineProps<{
modelValue: String,
num?: Number,
list: Array<ColumnProps>
}>()
//或者
const prors = defineProps({
modelValue: {
type: String
},
num: {
type: Number,
default: 0
},
list:{
type:Array as PropType<ColumnProps[]>,
required:true
}
})

defineEmits

//子组件

const emit = defineEmits(['handleSubmit']);
//或者
const emit = defineEmits<{
(e: 'handleSubmit', num: number): void
}>() const btn = ():void => {
emit('handleSubmit', 666666)
}

defineExpose

子组件暴露数据或者是方法

//子组件 children
const isShow = ref<boolean>(false)
const login = (): void => {
axios.post('/login').then()
}
defineExpose({ // 宏来显示指定组件中属性暴露出去
isShow,
login
}); //父组件
const
<children ref="childrenRef"></children> const childrenRef: any = ref(null); console.log(childrenRef.value.isShow) //获取到子组件暴露出的属性

vue3的setup语法糖的更多相关文章

  1. 基于SqlSugar的开发框架循序渐进介绍(11)-- 使用TypeScript和Vue3的Setup语法糖编写页面和组件的总结

    随着Vue3和TypeScript的大浪潮不断袭来,越来越多的Vue项目采用了TypeScript的语法来编写代码,而Vue3的JS中的Setup语法糖也越来越广泛的使用,给我们这些以前用弱类型的JS ...

  2. Vue3中setup语法糖学习

    目录 1,前言 2,基本语法 2,响应式 3,组件使用 3.1,动态组件 3.2,递归组件 4,自定义指令 5,props 5.1,TypeScript支持 6,emit 6.1,TypeScript ...

  3. vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽

    刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...

  4. 【Vue3.0】关于 script setup 语法糖的用法

    script setup - 简介 先来看一看官网关于 <script setup> 的介绍: 要彻底的了解 setup 语法糖,你必须先明确 setup() 这个 组合式API 官网中对 ...

  5. Vue3.2中的setup语法糖,保证你看的明明白白!

    vue3.2 到底更新了什么? 根据原文内容的更新的内容主要有以下 5 块: 1.SSR:服务端渲染优化.@vue/server-renderer包加了一个ES模块创建, 与Node.js解耦,使在非 ...

  6. Vue3的script setup语法糖这么好用的吗????

    最近发现这个vue3居然还可以这样写 原始写法 <template> <h1>Tangdoudou</h1> <h1>{{ num }}</h1& ...

  7. vue3.0+ts+setup语法糖props写法

    写法一 import defaultImg from '@/assets/images/defaultImg.png' const props = defineProps({ src: { type: ...

  8. Vue3 Composition API写烦了,试试新语法糖吧—setup script

    前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...

  9. vue3 script setup 定稿

    vue script setup 已经官宣定稿.本文主要翻译了来自 0040-script-setup 的内容. 摘要 在单文件组件(SFC)中引入一个新的 <script> 类型 set ...

  10. Python 语法糖装饰器的应用

    Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里. 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数. def sa ...

随机推荐

  1. 【CSS】CSS字体图标iconfont

    CSS字体图标iconfont展示的是图标,本质上还是字体 使用字体图标步骤: 字体图标的下载 将字体图标引入到HTML 字体图标的追加(以后添加新的小图标) 推荐下载网站 icomoon字库http ...

  2. 华为ME60 配置PPPOE-radius 业务

    华为ME60 配置PPPOE-radius 业务 1.创建radius 认证 # radius-server source interface LoopBack0 radius-server grou ...

  3. Linux env commands

    1.新机新增root 密码 sudo passwd root 2.新增用户密码 sudo passwd YOUR_USER_NAME NEW PW: NEW PW: 3.SSH Server sudo ...

  4. 前端复习之jQuery大全

    Jquery知识点梳理 梳理图摘自--https://www.cnblogs.com/859630097com/p/14433611.html [手机版]横屏观看,效果更佳 JavaScript类库: ...

  5. SQL 2019 卸载方法

    一.关闭服务 1.  win+r      services.msc   打开服务,关闭与SQL有关的服务内容. 二.卸载应用 1.win+r  control   打开控制面板---卸载程序---卸 ...

  6. clion环境配置

    如果是学生:直接使用学校的邮箱,可以直接注册使用 环境配置:下载:https://sourceforge.net/projects/mingw-w64/

  7. JavaWeb笔记第一弹

    一.MYSQL的安装 1.MYSQL的安装 可以去官网找到与自身计算机向对应的版本进行下载 网址如下: MySQL :: Download MySQL Community Server 2.MYSQL ...

  8. Android studio 安装过程中SDK的环境配置问题

    SDK的环境配置问题 在之前的某一篇中,我也提到过在Ecplise里面的SDK的环境配置,二者确实不太一样! 一.系统环境变量新增一个 变量名为:ANDROID_HOME 变量值为:浏览到下载SDK的 ...

  9. 使用Docker搭建MinIO集群服务

    概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用Docker的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 RELEASE ...

  10. 一个由public关键字引发的bug

    先来看一段代码: @Service @Slf4j public class AopTestService { public String name = "真的吗"; @Retrya ...