如何在多个文件之间共享全局变量?

我有两个都需要全局变量的文件。我有一个点击按钮。单击后,运行一个函数。代码如下:

文件1:

var globalVar = '', // The global variable

<button onClick = {() => this.edit(arg1)}></button>

function edit (arg1){

globalVar = arg1;

}

module.exports = globalVar;

我还有另一个文件,看起来像这样:

文件2:

var globalVar = require(./file1);

function openModal(){

if (globarVar != ''){

do something

}}

问题是当我单击按钮时,globalVar在edit()函数中更新,但是我在file2中的console.log(globalVar)显示为’‘。我的问题是当我单击按钮时如何将globalVar传递给file2按钮?

回答:

如果您确实想要全局变量(当然不建议这样做),那么您始终可以100%地自由做

window.globalVar = 0;

在您的任何模块中。


当然,更健壮的解决方案是让此全局变量位于某种专用模块中,例如

globalVar.js

export default {

value: 0

};

然后你可以

import globalVal from './globalVar';

globalVal.value = 'whatever';

从所需的任何模块。

唯一的风险是,如果您要进行代码拆分,则webpack可能会将同一“全局”值复制到多个包中,具体取决于您的设置。因此,单独的模块将使用此本地变量的本地副本。

-这不是真的。webpack从未这样做过;该评论是基于我的误解。

以上是 如何在多个文件之间共享全局变量? 的全部内容, 来源链接: utcz.com/qa/431074.html

回到顶部