当前位置: 首页 > news >正文

setup 语法糖核心要点

1. 基本语法

<!-- 传统写法 -->
<script lang="ts">
export default {setup() {let name = '张三'function changeName() { name = '李四' }return { name, changeName }}
}
</script><!-- 语法糖写法 -->
<script setup lang="ts">
let name = '张三'
function changeName() { name = '李四' }
// 无需 return,自动暴露给模板
</script>

2. 关键特性

✅ 自动暴露

  • 顶层变量、函数自动暴露给模板
  • 无需手动 return

✅ 组件自动注册

<script setup>
import Person from './Person.vue'
// 无需在 components 中注册,直接使用
</script>
<template><Person/>  <!-- 直接使用 -->
</template>

✅ 编译器宏?

<script setup>
// Props 定义
const props = defineProps<{ message: string }>()// Emits 定义  
const emit = defineEmits<{ 'my-event': [data: string] }>()// 暴露方法给父组件
defineExpose({ publicMethod })
</script>

3. 组件名称问题

问题:<script setup> 无法直接设置组件名

<script setup name="Person">  <!-- ❌ 这样不行 -->

解决方案:使用 Vite 插件

npm i vite-plugin-vue-setup-extend -D
// vite.config.ts
import VueSetupExtend from 'vite-plugin-vue-setup-extend'export default defineConfig({plugins: [vue(), VueSetupExtend()]
})

然后就可以:

<script setup name="Person">  <!-- ✅ 现在可以了 -->

对比总结

| 特性 | 传统 setup() | <script setup> |

|------|-------------|------------------|

| 代码量 | 多(需要 return) | 少(自动暴露) |

| 组件注册 | 需要手动注册 | 自动注册 |

| 类型支持 | 一般 | 优秀 |

| 学习成本 | 中等 | 低 |

一句话总结:<script setup> 是 Vue 3 的"零配置"组合式 API,让组件编写更简洁,但需要插件支持组件命名。

http://www.dtcms.com/a/344309.html

相关文章:

  • 第二十八天:多项式求值问题
  • 决策树进阶学习笔记
  • 文件包含的学习笔记
  • ExcelUtils实现 设置内容 插入行 复制行列格式
  • Day11 数据统计 图形报表
  • 打造数字化资产管理新范式——资产管理系统实战体验
  • DIC技术极端环境案例分享:35MPa水下高压釜拉伸测试
  • Unity 自用帧同步架构分享
  • Python递归下降解析器深度解析:从原理到工程实践
  • layui.formSelects自定义多选组件在layer.open中使用、获取、复现
  • 2025年十大工程项目管理软件
  • 如何使用AI大语言模型解决生活中的实际小事情?
  • 【机器学习深度学习】LMDeploy的分布式推理实现
  • Laravel分布式全链路追踪实战
  • OpenCV 图像边缘检测
  • 设计模式之装饰模式
  • 技术革新:再互动平台如何以全链路数字化重构防伪溯源生态
  • 泵站远程监控与自动化控制系统:智慧泵房设备的创新实践
  • RLHF的定义
  • 无人机延时模块技术难点解析
  • 数字安全隐形基石:随机数、熵源与DRBG核心解析与技术关联
  • Kubernetes 构建高可用、高性能 Redis 集群
  • 服务器硬件中的磁盘SSD与HDD性能区别,以及分别适用于什么业务?
  • 高性能、高实时、高安全:如何在飞凌嵌入式i.MX95xx核心板上同时实现?
  • C++ 循环:从入门到精通的深度解析
  • KubeBlocks for MSSQL 高可用实现
  • 云原生(Cloud Native)技术概述
  • 企业级大模型解决方案:架构、落地与代码实现​
  • LeetCode 分类刷题:34. 在排序数组中查找元素的第一个和最后一个位置
  • Unreal Engine APawn 与 ACharacter 比较