在 Vue.js 单文件组件 (SFC) 中,每个 <script>
区域都是独立的,它们之间不会共享变量。Vue 单文件组件的 <script>
区域支持不同的模式,包括默认模式和模块模式。
1、默认模式:
如果没有添加 module
属性,那么脚本会在全局命名空间中运行。在这种情况下,两个 <script>
区域中的变量是相同的,它们都在同一个全局作用域下。
<script>
// 这里的变量是在全局作用域中定义的
var globalVariable = ‘I am in the global scope’;
</script>
<script>
// 这里也可以访问到全局变量 globalVariable
console.log(globalVariable); // 输出: I am in the global scope
</script>
2、模块模式:
如果你添加了 module
属性,那么脚本会在模块的作用域中运行,而不是在全局命名空间中。在这种情况下,两个 <script>
区域中的变量不会相互干扰,它们在各自的模块作用域中。
<script>
// 这里的变量是在模块作用域中定义的
let moduleVariable = ‘I am in the module scope’;
</script>
<script module>
// 这里也定义了一个在模块作用域中的变量,与上面的变量不冲突
let anotherModuleVariable = ‘I am in another module scope’;
</script>
总体来说,使用 module
属性可以避免全局作用域中的命名冲突,更符合现代 JavaScript 的模块化开发理念。如果你在 Vue 单文件组件中使用了模块模式,两个 <script>
区域中的变量是独立的。