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

Vue 的单文件组件(.vue 文件)script 标签的使用说明

在 Vue 的单文件组件(.vue 文件)中,最多可以编写 2 个 <script> 标签,但需要满足特定条件:


1. Vue 3 的情况(主流用法)

从 Vue 3.2+ 开始,官方支持以下两种形式共存:

vue

<script>
// 普通 script (选项式 API / 非 setup 的逻辑)
export default {inheritAttrs: false, // 可声明普通选项customOptions: {} // 自定义配置
}
</script><script setup>
// 组合式 API 的 setup 语法糖
const msg = "Hello World"
</script>

两个 <script> 需要使用相同的语言脚本

vue

<script lang="ts">

</script>

<script setup lang="ts" name="SampleInput">

</script>

规则:
  • 最多 1 个普通 <script>(不带 setup

  • 最多 1 个 <script setup>(带 setup 属性)

  • 顺序不限,但两者逻辑会合并到组件中


2. Vue 2 的情况

传统 Vue 2 的 .vue 文件通常 只能有 1 个 <script> 标签,用于定义组件选项:

vue

<script>
export default {data() { return { msg: "Hello" } }
}
</script>

3. 其他注意事项

1、两个 <script> 需要使用相同的语言脚本

2、import必须在顶部,可以集中在任意一个<script>的顶部,也可以分散在两个<script>的顶部

3、export必须在没有setup的 <script> 

vue

<script lang="ts">import { reactive } from "vue";export const applySampleListSymbol = Symbol("applySampleList");</script><script setup lang="ts" name="SampleInput">import { ref } from "vue";......</script><template></template><style scoped lang="scss"></style>

若使用 不同语言脚本需构建工具支持),可通过 lang 属性区分多个 <script>,但实际开发中极少需要这么做:

vue

<script lang="ts">
// TypeScript 逻辑
</script><script lang="js">
// JavaScript 逻辑
</script>

总结

Vue 版本最多 script 数量条件
Vue 321 个普通 + 1 个 setup
Vue 21无特殊属性

实际开发中推荐保持单一 <script>(或 setup)以保证代码可维护性。若有特殊需求(如混合选项式与组合式 API),才使用双 script 模式。

相关文章:

  • AI赋能安全调度系统:智能升级与功能跃迁
  • KMS工作原理及其安全性分析
  • Leetcode19(亚马逊真题):删除链表的倒是第N个节点
  • 特征存储的好处:特征存储在机器学习开发中的优势
  • dumpsys activity activities中的Task和ActivityRecord信息解读
  • 【Linux网络】应用层自定义协议与序列化及Socket模拟封装
  • 2025上海车展|紫光展锐发布新一代旗舰级智能座舱芯片平台A888
  • Trae 编程工具 Cline 插件安装与 Claude 3.7 API Key 自定义配置详解
  • 济南国网数字化培训班学习笔记-第二组-6-输电线路现场教学
  • 热度大幅度下降,25西电经济与管理学院(考研录取情况)
  • html单页业务介绍源码
  • RuntimeError: “unfolded2d_copy“ not implemented for ‘Half‘
  • 从零搭建高可用分布式限流组件:设计模式与Redis令牌桶实践
  • 跑MPS产生委外采购申请(成品)
  • 线程同步与互斥(互斥)
  • Vue.js 的组件化开发指南
  • 【k8s】KubeProxy 的三种工作模式——Userspace、iptables 、 IPVS
  • 如何应对客户提出的不合理需求
  • 第四章: 服务集成抽象
  • 3.ArkUI Image的介绍和使用
  • 娱见 | 为了撕番而脱粉,内娱粉丝为何如此在乎番位
  • 言短意长|党政主官如何塑造流量城市?
  • 广东省联社:积极推动改制组建农商联合银行工作
  • 山东滕州一车辆撞向公交站台撞倒多人,肇事者被控制,案件已移交刑警
  • 许昌市场监管部门对胖东来玉石开展日常检查:平均毛利率不超20%
  • 消失的日本中年劳动者:任何人都有与社会脱节的风险