首页 > 解决方案 > 节点的全局变量与在反应组件 SSR 中创建的名为 global 的变量

问题描述

如果我有一个在节点上运行的 SSR react 应用程序,其组件设置了一个类似的变量let global = {},然后执行类似的操作global.name = 'sam',这个全局变量是否会替换/覆盖节点的全局对象,或者这个全局变量是否会在反应组件的范围内?当组件卸载时,这个对象会被垃圾回收,还是会作为节点的全局对象留在内存中?

我知道global用作变量名不是最佳实践,但只是想知道这是否会导致内存泄漏。

标签: node.jsreactjsserver-sideserver-side-rendering

解决方案


该变量将仅替换定义新变量的范围内的let global节点。global

console.log(global) // Object [global] {...}
function go(){
  let global = {}
  console.log(global) // {}
}
go()
console.log(global) // Object [global] {...}

global使用节点时不要使用命名的变量。


推荐阅读