Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库一起学习

黄忠
• 阅读 276

Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库 download:> https://www.sisuoit.com/4186.html

1、宏中的导入类型和复杂类型 以前,在 和 的类型参数位置中使用的类型仅限于本地类型,并且仅支持类型文本和接口。这是因为 Vue 需要能够分析 props 接口上的属性,以便生成相应的运行时选项。defineProps``defineEmits 此限制现已在 3.3 中解决。编译器现在可以解析导入的类型,并支持一组有限的复杂类型: vue xml复制代码

请注意,复杂类型支持是基于 AST 的,因此不是 100% 全面的。不支持一些需要实际类型分析的复杂类型,例如条件类型。您可以将条件类型用于单个 props 的类型,但不能对整个 props 对象使用。

详细信息: PR#8083

2、通用组件 使用的组件现在可以通过以下属性接受泛型类型参数:

的值与 TypeScript 中的参数列表完全相同。例如,可以使用多个参数、约束、默认类型和引用导入的类型:generic<...>extends vue xml复制代码

此功能以前需要明确的选择加入,但现在在最新版本的 volar / vue-tsc 中默认启用。

讨论:RFC#436 相关: 通用定义组件() - PR#7963

3、更符合人体工程学defineEmits 以前,的类型参数仅支持调用签名语法:defineEmits TS typescript复制代码// BEFORE const emit = defineEmits<{ (e: 'foo', id: number): void (e: 'bar', name: string, ...rest: any[]): void }>()

该类型与 的返回类型匹配,但编写起来有点冗长和笨拙。3.3 引入了一种更符合人体工程学的用类型声明发出的方式:emit TS typescript复制代码// AFTER const emit = defineEmits<{ foo: [id: number] bar: [name: string, ...rest: any[]] }>()

在类型文本中,键是事件名称,值是指定其他参数的数组类型。尽管不是必需的,但您可以使用标记的元组元素来实现显式性,如上例所示。 仍支持调用签名语法。 4、类型化插槽defineSlots 新的宏可用于声明预期的插槽及其各自的预期插槽道具:defineSlots vue typescript复制代码 defineSlots()只接受类型参数,不接受运行时参数。类型参数应为类型文本,其中属性键是槽名称,值是槽函数。函数的第一个参数是插槽期望接收的道具,其类型将用于模板中的槽道具。的返回值与从 返回的插槽对象相同。defineSlots``useSlots

当前的一些限制:

所需的插槽检查尚未在 volar / vue-tsc 中实现。 时隙函数返回类型目前被忽略,可以忽略,但我们将来可能会利用它来检查槽内容。any

还有一个相应的使用选项。这两个 API 都没有运行时影响,纯粹用作 IDE 和 .slotsdefineComponentvue-tsc

详细信息: PR#7982

实验性功能 5、反应式道具解构 以前是现在放弃的反应性变换的一部分,反应式道具解构已被拆分为一个单独的功能。 该功能允许解构道具保持反应性,并提供一种更符合人体工程学的方式来声明道具默认值: vue xml复制代码

点赞
收藏
评论区
推荐文章
helloworld_40038029 helloworld_40038029
8个月前
Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库
ElementPlus是由Element团队开发的一个全新的组件库,它完全基于Vue3的新特性和API进行开发,充分利用了Vue3的性能优势和组合式API。ElementPlus的组件不仅拥有优秀的设计风格和交互体验,而且支持多种主题定制和国际化,适应不同的场景和需求。ElementPlus还提供了一套完整的Sketch设计资源,方便设计师进行原型设计和视觉稿制作。
贾蓁 贾蓁
3个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库(超清完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(超清完结)download》http://quangneng.com/3674/打造媲美ElementPlus的Vue3.3TypeScript组件库引言Vue.js是一款流行的JavaS
程昱 程昱
2个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库(超清完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(超清完结)download》quangneng.com/3674/Vue3.3TypeScript4打造媲美ElementPlus的组件库详细介绍一、背景介绍在Vue.js生态系统中,构建
程昱 程昱
2个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库(超清完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(超清完结)download》quangneng.com/3674/Vue3.3与TS4携手,自主打造卓越组件库——媲美ElementPlus的全新体验随着前端技术的飞速发展,Vue.js已成
程昱 程昱
1个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库超清完结
Vue3.3TS4,自主打造媲美ElementPlus的组件库超清完结download》quangneng.com/3674/如果你想自主打造一个与ElementPlus媲美的组件库,下面是一些步骤和建议:确定需求和目标:首先,明确你的组件库的设计哲学和
乐和 乐和
1个月前
Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库(完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(完结)download》itzx666.com/9101/打造媲美ElementPlus的Vue3.3TS4组件库:探索创新与卓越在当今的Vue.js开发领域,ElementPlus是一款
乐和 乐和
1个月前
Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库(完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(完结)download》chaoxingit.com/2365/打造媲美ElementPlus的自主Vue3.3TypeScript4组件库在现代Web开发中,Vue.js是一个极其流行的
韦康 韦康
1个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库超清完结
Vue3.3TS4,自主打造媲美ElementPlus的组件库超清完结download》quangneng.com/3674/如果你想自主打造一个与ElementPlus媲美的组件库,下面是一些步骤和建议:确定需求和目标:首先,明确你的组件库的设计哲学和
乐和 乐和
1个月前
Vue3.3 + TS4,自主打造媲美 ElementPlus 的组件库(超清完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(超清完结)download》chaoxingit.com/2365/Vue3.3TS4构建组件库概览在现代前端开发中,Vue.js和TypeScript的结合使用已经成为一种趋势。Vue.
光之守卫 光之守卫
3星期前
Vue3.3 + TS4 ,自主打造媲美 ElementPlus 的组件库(超清完结)
Vue3.3TS4,自主打造媲美ElementPlus的组件库(超清完结)download》quangneng.com/3674/打造现代化组件库:基于Vue3.3和TypeScript4的自定义组件库实践摘要:随着前端技术的不断发展,构建可复用、易维护