Vue3单文件组件中,
<script setup>、<template>和<style>三部分的顺序可以任意排列,但推荐将<script setup>放在最前面。这种"逻辑优先"的组织方式符合"声明在前,使用在后"的阅读习惯,能获得更好的IDE支持和类型检查体验,也与Vue官方文档和社区约定保持一致。
虽然顺序不影响编译结果,但建议在项目中保持一致的代码风格,优先考虑团队的可读性和协作效率。
在 Vue 3 的单文件组件中,<script setup>放在<template>上面是一种推荐的代码组织方式,但这不是强制要求的。
实际上,三个部分的顺序可以任意排列。
常见的顺序推荐:
1.Script 在 Template 上面(推荐)
<script setup lang="ts"> // 逻辑和导入放在最前面 import { ref } from 'vue' const count = ref(0) </script> <template> <!-- 模板引用 script 中的内容 --> <h1>{{ count }}</h1> </template> <style scoped> /* 样式最后 */ </style>2. 也可以 Template 在 Script 上面
<template> <h1>You did it!</h1> </template> <script setup lang="ts"> // 这样写也是有效的 </script>为什么推荐 Script 在上?
逻辑优先原则
先定义数据、方法、导入依赖
再在模板中使用它们
符合“声明在前,使用在后”的阅读习惯
更好的开发体验
IDE 和 TypeScript 工具链能先处理脚本部分
模板中的自动补全和类型检查更准确
代码折叠时,核心逻辑更容易找到
社区约定
Vue 官方文档和大多数项目都采用这种顺序
形成统一的代码风格,便于团队协作
官方示例:
查看 Vue 官方文档和示例,大多数都是这样的顺序:
<script setup> // 1. Script 部分 </script> <template> <!-- 2. Template 部分 --> </template> <style scoped> /* 3. Style 部分 */ </style>重要原则:
保持一致性:选择一种顺序并在整个项目中保持一致
可读性优先:让代码对团队成员最友好
没有绝对对错:Vue 编译器不关心顺序,最终都会正确编译