vue3的setup语法糖
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语法糖的更多相关文章
- 基于SqlSugar的开发框架循序渐进介绍(11)-- 使用TypeScript和Vue3的Setup语法糖编写页面和组件的总结
随着Vue3和TypeScript的大浪潮不断袭来,越来越多的Vue项目采用了TypeScript的语法来编写代码,而Vue3的JS中的Setup语法糖也越来越广泛的使用,给我们这些以前用弱类型的JS ...
- Vue3中setup语法糖学习
目录 1,前言 2,基本语法 2,响应式 3,组件使用 3.1,动态组件 3.2,递归组件 4,自定义指令 5,props 5.1,TypeScript支持 6,emit 6.1,TypeScript ...
- vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽
刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...
- 【Vue3.0】关于 script setup 语法糖的用法
script setup - 简介 先来看一看官网关于 <script setup> 的介绍: 要彻底的了解 setup 语法糖,你必须先明确 setup() 这个 组合式API 官网中对 ...
- Vue3.2中的setup语法糖,保证你看的明明白白!
vue3.2 到底更新了什么? 根据原文内容的更新的内容主要有以下 5 块: 1.SSR:服务端渲染优化.@vue/server-renderer包加了一个ES模块创建, 与Node.js解耦,使在非 ...
- Vue3的script setup语法糖这么好用的吗????
最近发现这个vue3居然还可以这样写 原始写法 <template> <h1>Tangdoudou</h1> <h1>{{ num }}</h1& ...
- vue3.0+ts+setup语法糖props写法
写法一 import defaultImg from '@/assets/images/defaultImg.png' const props = defineProps({ src: { type: ...
- Vue3 Composition API写烦了,试试新语法糖吧—setup script
前言 Vue3发布近一年了,相信大家对Vue3的新特性,新语法都很熟悉了.那么在使用Composition API的过程中,有没有觉得整个过程比较繁琐.比如你的模板里用到了大量的state和方法的时候 ...
- vue3 script setup 定稿
vue script setup 已经官宣定稿.本文主要翻译了来自 0040-script-setup 的内容. 摘要 在单文件组件(SFC)中引入一个新的 <script> 类型 set ...
- Python 语法糖装饰器的应用
Python中的装饰器是你进入Python大门的一道坎,不管你跨不跨过去它都在那里. 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数. def sa ...
随机推荐
- nohup /root/runoob.sh > runoob.log 2>&1 &
nohup /root/runoob.sh > runoob.log 2>&1 &****
- c++中的构造函数,拷贝构造函数和赋值函数
1.拷贝构造和赋值函数的区别: 1)拷贝构造函数是一个对象初始化一块内存区域,这块内存就是新对象的内存区,而赋值函数是对于一个已经被初始化的对象来进行赋值操作. 2)一般来说在数据成员包含指针对象的时 ...
- NX二次开发读属性/表达式封装函数
int Read_ATTR_Type(int ObjTag, char* Attr_Title); //读取属性返回属性类型 string Read_ATTR_StringValue(int ObjT ...
- 替代if esle 的高级方法
if else 是入门最常遇到的一种结构,这种结构简单易懂,深受初学者喜爱.但是 If-Else通常是一个糟糕的选择. 它的可读性差,如果用的太多,会导致结构重构困难.今天我就介绍替代 If-Else ...
- 搭建rust开发环境
1.打开https://www.rust-lang.org/tools/install 下载64位安装器 选择第一项默认安装 安装器会下载安装rust 相关工具链,并添加path C:\Users\z ...
- .Net中跨域问题的解决方案
开发中前端与后端完全分离并分开发布,遇到跨域问题,一通百度之后,解决方案如下: 把下面的代码放在web.config文件中的 System.WebServer 节点下 <httpProtocol ...
- win10_pyhive链接hive失败,提示:Could not start SASL
win10_pyhive链接hive失败,提示:Could not start SASL https://blog.csdn.net/weixin_45684985/article/details/1 ...
- GO语言学习笔记-方法篇 Study for Go ! Chapter five - Method
持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...
- vulnhub靶场之MOMENTUM: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:Momentum: 1,下载地址:https://download.vulnhub.com/momentum/Momentum.ova,下载后直 ...
- DecimalFormat--控制输出格式
DecimalFormat的相关应用 整数的实现: 小数的实现: 科学计数法: 分组分隔符: 举个例子吧!-- 关于前缀后缀: 本地化货币符号: 引用特殊的字符,作为前缀或者后缀: 实例来袭! 1.0 ...