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. 助教工作总结(高级语言程序设计C语言)

    * { font-family: 宋体 } zw { font-size: 20px; line-height: 2em } 一.助教工作的具体职责和任务   在本学期担任陈欣老师的计科专业21级c语 ...

  2. fiddler动态调试js

    背景   昨天获取到的网易云音乐站点的请求内容居然是加密的, 就需要动态的调试js找出params很secSeky未加密之前的内容. 调试方法   调试之前需要在目标浏览器上部署上fiddler的根证 ...

  3. sql自学记录

    复习 SQL join :用于根据两个或多个表中的列之间的关系,从这些表中查询数据 eg: SELECT Persons.LastName, Persons.FirstName, Orders.Ord ...

  4. windows10环境下的RabbitMQ安装步骤(图文)(转载)

    第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. 下载地址:http://www.erlang.or ...

  5. PHP 数据库操作

    连接数据库 连接数据库常用的函数 mysqli_connect(主机IP,用户名,密码,数据库名,端口号) // 端口号如果是3306可以省略 mysqli_connect_error():获取连接数 ...

  6. OVS内核流表查询过程

    概括 现在的OVS使用microflow+megaflow缓存查询流表,ovs整体流程是从ovs_vport_receive(datapath/vport.c)开始,然后进入ovs_dp_proces ...

  7. C++/Qt网络通讯模块设计与实现(四)

    在C++/Qt网络通讯模块设计与实现(三)中提到了一个概念,即接受者所依附的线程:关注我微信公众号的技术朋友留言对该概念还是不解,这节就单独讲述这个概念的理论与实际应用,这种应用无处不在,因为与Qt的 ...

  8. .Net 6.0定义全局当前身份缓存对象

    背景: 当前身份缓存对象顾名思义就是:当前登录的用户身份对象,那它解决了什么问题呢?其实在我们日常开发过程中经常能用的到几乎是必备的,就比如我给某个表插入数据时需要创建人或者一些权限的访问,都得用到当 ...

  9. 基于express、node与mongodb写后端接口

    1.首先运行mongodb,建立一个数据库.(前提是你的电脑已经装了mongodb) 先打开一个命令窗口打开mongodb cd /usr/localcd mongodb/bin./mongod -- ...

  10. 记录关于Chromium系浏览器密码安全问题的一些思考

    首先就是在此之前就看到有相关报道讲到Chrome等浏览器密码都在本地明文存储,而且权限要求很低,任何程序都可以随意读取,这方面的安全问题暂且不表. 今天使用Edge时候发现浏览器储存的密码,在我已经设 ...