全局变量
在 Meteor 3 中,关于应用程序中全局变量的定义有一些重要的更改。本文档提供了有关如何在 Meteor 3 中正确定义全局变量的指南,并解释了严格模式执行的影响。
先前方法
在早期版本的 Meteor 中,您可能使用以下语法在应用程序中定义了一个全局变量
javascript
GlobalVar = { ... };
Meteor 3 中的新方法
随着 Meteor 3 中引入严格模式,在应用程序中定义全局变量的推荐方法发生了变化。您现在应该使用global
对象来定义全局变量
javascript
global.GlobalVar = { ... };
此更改是必要的,因为严格模式(在 Meteor 3 的某些情况下自动执行)不支持以传统方式定义全局变量。
在包中定义全局变量
对于包,定义全局变量的过程与 Meteor 2 没有变化。您可以继续像以前一样定义全局变量,无需任何修改。
在 Meteor 包中,Meteor 会自动在包范围内添加一个变量声明。此行为避免了使用global
对象的需要,并避免了严格模式的限制。
但是,在应用程序中,没有等效的“应用程序范围”,因此在应用程序中定义的全局变量必须是真正的全局变量,需要使用global
对象。
Meteor 3 对使用顶级 await (TLA) 或import
语法的模块强制执行严格模式。此强制执行符合 JavaScript 规范,并提高了代码的整体一致性和合规性。
有关严格模式及其影响的更多详细信息,请参阅严格模式文档。
结论
通过遵循这些指南,您可以确保您的全局变量定义与 Meteor 3 及其严格模式执行兼容。这将有助于在您过渡到最新版本的 Meteor 时维护应用程序的稳定性和合规性。