只导入 javascript 个模块 运行 一次吗?
Does importing javascript modules only run them once?
如果我在模块B和C中都引入了一个module
A,那么A里面的代码总共执行了2次吗?这意味着如果我在 A 中调用 fetch()
,fetch()
会被调用 2 次吗?
例如
//file: A.js
var A = {
init: false,
count: 0
};
if(A.init == false) {
A.init = true;
A.value = fetch("https://...");
}
我以为无论导入多少次,模块代码在网页的生命周期内只执行一次?
所以如果在模块B里面我设置了A.count = 1
,那么在模块C里面,A.count
的值也是1.
但根据“导入模块仅用于其副作用”,网址为:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
我可以运行 为使用它的每个模块(B、C、D)多次编写模块 A 代码。这与上述情况如何相称?
来自Module A
的代码将被执行2次!一次在 Module B
一次在 Module C
.
模块 A
function foo() {
return 'yo I`m in module A being executed in... ';
}
export default foo;
模块 B
import foo from './moduleA';
console.log(`${foo()} in module B`);
模块 C
import foo from './moduleA';
console.log(`${foo()} in module C`);
如果我在模块B和C中都引入了一个module
A,那么A里面的代码总共执行了2次吗?这意味着如果我在 A 中调用 fetch()
,fetch()
会被调用 2 次吗?
例如
//file: A.js
var A = {
init: false,
count: 0
};
if(A.init == false) {
A.init = true;
A.value = fetch("https://...");
}
我以为无论导入多少次,模块代码在网页的生命周期内只执行一次?
所以如果在模块B里面我设置了A.count = 1
,那么在模块C里面,A.count
的值也是1.
但根据“导入模块仅用于其副作用”,网址为:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
我可以运行 为使用它的每个模块(B、C、D)多次编写模块 A 代码。这与上述情况如何相称?
来自Module A
的代码将被执行2次!一次在 Module B
一次在 Module C
.
模块 A
function foo() {
return 'yo I`m in module A being executed in... ';
}
export default foo;
模块 B
import foo from './moduleA';
console.log(`${foo()} in module B`);
模块 C
import foo from './moduleA';
console.log(`${foo()} in module C`);