介绍
在 React 中,全局对象 global 可以用于保存全局状态和共享数据,需要注意的是,global 对象只能在整个应用程序的生命周期内使用,不能在组件之间共享状态。
创建全局对象
要创建全局对象,可以在 React 应用程序的根目录下创建一个 js 文件,并将其导入到应用程序中的每个模块中。下面是一个例子:
// global.js const global = { appName: 'MyApp', version: '1.0.0', }; export default global;
在应用程序中的每个模块都可以使用它:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ ------ ---- ----------- ------ ------- -------- ----- - ------ - ----- ------------------------- ----------------------- ------ -- -
在不同组件之间共享状态
在 React 中,通过 props 将状态从父组件传递到子组件是非常常见的。但在某些情况下,将状态传递下去太麻烦,使用全局对象来共享状态可能更方便。
在以下示例中,我们将创建一个全局对象,该对象将存储用户是否已经登录的状态,并在两个组件中使用该对象。
-- -------------------- ---- ------- -- --------- ----- ------ - - ----------- ------ -------------------- - --------------- - ------ -- -- ------ ------- -------
在 Login 组件中,我们将使用 setIsLoggedIn 函数将 isLoggedIn 设置为 true:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ ------ ---- ----------- ------ ------- -------- ------- - ------ - ----- ------- ----------- -- ------------------------------------------ ------ -- -
在 App 组件中,我们将根据 isLoggedIn 的值来渲染不同的内容:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ ------ ---- ----------- ------ ------- -------- ----- - ------ - ----- ------------------ - - ----------- ---------- - - - ---------- --- ------- -- ------ -- -
总结
在 React 中,全局对象 global 可以用于保存全局状态和共享数据。但需要注意的是,不能在组件之间共享状态,应该通过 props 将状态从父组件传递到子组件。使用全局对象来共享状态只适用于少数情况,切勿滥用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647bf770968c7c53b0734972