vue3中Composition API写法 <script setup>标签中哪些可以不用导入即可使用?

在 Vue 3 中使用 <script setup> 时,确实有一些全局的 API 和宏可以直接使用,而不需要显式地从 vue 包中导入它们。这是因为 <script setup> 是专门为了提供更简洁的组件编写方式而设计的,它内部利用了编译时的语法糖。

以下是在 <script setup> 中可以直接使用的 API 和宏,无需导入:

  • defineProps(和 withDefaults): 用于声明组件的 props。
  • defineEmitsdefineExpose: 用于声明组件的自定义事件。
  • defineOptions: 用于定义组件的其他选项,如 namecomponents 等。
  • useSlotsuseAttrs: 用于访问组件的插槽和属性。
  • withModifiers: 用于定义模板中事件修饰符的函数。
  • withKeys: 用于定义模板中键盘事件的修饰符函数。
  • vModel: 用于在 <script setup> 中使用 v-model
  • vShow: 用于在 <script setup> 中使用 v-show

对于响应式 API,如 ref, reactive, computed, watch, watchEffect 等,你仍然需要从 vue 包中导入它们,因为它们不是编译时宏,而是实际的函数调用。

例如:

javascript 复制代码
import { ref, reactive, computed } from 'vue';

const count = ref(0);
const state = reactive({ count: 0 });
const doubled = computed(() => count.value * 2);

<script setup> 中使用 JSX 时,你通常不需要导入像 hFragment 这样的函数,因为 JSX 转换会自动处理它们。但是,如果你需要在 JSX 之外的地方使用它们,比如返回一个渲染函数,你仍然需要导入。

总之,在 <script setup> 中,Vue 提供了一些编译时的宏来简化组件的编写,而响应式和生命周期等 API 需要正常导入使用。

相关推荐
范文杰3 小时前
AI 时代如何更高效开发前端组件?21st.dev 给了一种答案
前端·ai编程
拉不动的猪3 小时前
刷刷题50(常见的js数据通信与渲染问题)
前端·javascript·面试
拉不动的猪3 小时前
JS多线程Webworks中的几种实战场景演示
前端·javascript·面试
FreeCultureBoy4 小时前
macOS 命令行 原生挂载 webdav 方法
前端
uhakadotcom4 小时前
Astro 框架:快速构建内容驱动型网站的利器
前端·javascript·面试
uhakadotcom4 小时前
了解Nest.js和Next.js:如何选择合适的框架
前端·javascript·面试
uhakadotcom4 小时前
React与Next.js:基础知识及应用场景
前端·面试·github
uhakadotcom4 小时前
Remix 框架:性能与易用性的完美结合
前端·javascript·面试
uhakadotcom5 小时前
Node.js 包管理器:npm vs pnpm
前端·javascript·面试
LaoZhangAI6 小时前
2025最全GPT-4o图像生成API指南:官方接口配置+15个实用提示词【保姆级教程】
前端