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

Vue3 中 <script setup> 场景下,需要手动导入和不需要手动导入的内容整理

以下是 Vue3 中 <script setup> 场景下,需要手动导入不需要手动导入的内容整理(按使用场景分类):

分类需要手动导入(必须 import不需要手动导入(直接使用)
响应式与状态- refreactive、computed(计算属性)
- watchwatchEffect(数据监听)
- 示例:import { ref, computed } from 'vue'
无(响应式 API 均需导入)
生命周期钩子- onMountedonUpdatedonUnmounted 等(组件生命周期)
- 示例:import { onMounted } from 'vue'
无(生命周期钩子均需导入)
组件与模板- 非组件的工具类(如 useSlotsuseAttrs 用于脚本中访问插槽/属性)
- 示例:import { useSlots } from 'vue'
- 导入的组件(直接在模板使用,无需注册)
示例:import Child from './Child.vue' 后直接用 <Child/>
编译器宏(核心)无(宏函数由编译器处理,无法导入)- defineProps(声明 props)
- defineEmits(声明事件)
- defineExpose(暴露组件内容)
- defineOptions(声明组件选项,Vue3.3+)
- defineModel(双向绑定简化,Vue3.4+)
示例:const props = defineProps({ title: String })
特殊语法与变量- nextTick(DOM 更新后执行)
- 工具函数(isRefunreftoRefs 等)
示例:import { nextTick, isRef } from 'vue'
- 顶层 await(直接使用,无需包裹 async
示例:const data = await fetch(...)
- 模板中直接使用 $attrs$slots(脚本中需通过 useAttrs/useSlots 导入)
示例:模板中 <div v-bind="$attrs"></div>
全局 API- createAppdefineComponentdefineAsyncComponent 等(通常在入口文件使用)
示例:import { createApp } from 'vue'
无(全局 API 均需导入)

关键说明:

  1. 编译器宏(defineXXX:是 <script setup> 专属语法,由 Vue 编译器直接解析,绝对不能导入(导入会报错)。
  2. 组件自动注册:仅在 <script setup> 中导入的组件有此特性,选项式 API 仍需手动注册到 components 选项中。
  3. 模板 vs 脚本$attrs$slots 在模板中可直接使用,但在 <script setup> 脚本中需通过 useAttrs()useSlots() 导入后访问。
  4. 版本兼容性defineOptions(3.3+)、defineModel(3.4+)是新增宏,低版本 Vue 不支持。
http://www.lryc.cn/news/619449.html

相关文章:

  • 第二十二天:指针与内存
  • TF - IDF算法面试与工作常见问题全解析
  • OpenCV常见问题汇总
  • 音视频处理新纪元:12款AI模型的语音转录和视频理解能力横评
  • 【计算机网络】王道考研笔记整理(4)网络层
  • OpenAI 回应“ChatGPT 用多了会变傻”
  • Debian新一代的APT软件源配置文件格式DEB822详解
  • 【C++详解】用红黑树封装模拟实现mymap、myset
  • 《论文阅读》从特质到移情:人格意识多模态移情反应生成 ACL 2025
  • 2025 环法战车科技对决!维乐 Angel Glide定义舒适新标
  • 用vscode开发和调试golang超简单教程
  • 【debian系统】cuda13和cudnn9.12详细安装步骤
  • Pytest项目_day15(yaml)
  • 肖臻《区块链技术与应用》第十二讲:比特币是匿名的吗?—— 深入解析匿名性、隐私风险与增强技术
  • 《算法导论》第 22 章 - 基本的图算法
  • Linux入门DAY23
  • 【从零开始java学习|第五篇】项目、模块、包、类的概念与联系
  • 解决:Gazebo连接模型数据库失败
  • 制作一款打飞机游戏90:完结
  • JavaSE高级-01
  • BGP 笔记梳理
  • 分布式事务DTP模型
  • Vue3 vs Vue2:全面对比与面试宝典
  • 递归函数与 lambda 函数:用法详解与实践
  • Pixelorama 1.1.3 像素动画编辑制作
  • 科普:Pygame 中的坐标系
  • 猫头虎AI分享:Excel MCP,让AI具备操作Excel表格|创建销售数据表、复制工作表、填充数据、写公式、绘制图表、调节颜色、添加透视表、保存为PDF
  • python与JavaScript的区别
  • Unity3d UGUI图片按钮只有非透明区域(透明阈值)可以点击功能实现(含源码)
  • 高级IO(五种IO模型介绍)