React 中 global 对象的使用

阅读时长 3 分钟读完

介绍

在 React 中,全局对象 global 可以用于保存全局状态和共享数据,需要注意的是,global 对象只能在整个应用程序的生命周期内使用,不能在组件之间共享状态。

创建全局对象

要创建全局对象,可以在 React 应用程序的根目录下创建一个 js 文件,并将其导入到应用程序中的每个模块中。下面是一个例子:

在应用程序中的每个模块都可以使用它:

-- -------------------- ---- -------
------ ----- ---- --------
------ ------ ---- -----------

------ ------- -------- ----- -
  ------ -
    -----
      -------------------------
      -----------------------
    ------
  --
-

在不同组件之间共享状态

在 React 中,通过 props 将状态从父组件传递到子组件是非常常见的。但在某些情况下,将状态传递下去太麻烦,使用全局对象来共享状态可能更方便。

在以下示例中,我们将创建一个全局对象,该对象将存储用户是否已经登录的状态,并在两个组件中使用该对象。

-- -------------------- ---- -------
-- ---------
----- ------ - -
  ----------- ------
  -------------------- -
    --------------- - ------
  --
--

------ ------- -------

在 Login 组件中,我们将使用 setIsLoggedIn 函数将 isLoggedIn 设置为 true:

-- -------------------- ---- -------
------ ----- ---- --------
------ ------ ---- -----------

------ ------- -------- ------- -
  ------ -
    -----
      ------- ----------- -- ------------------------------------------
    ------
  --
-

在 App 组件中,我们将根据 isLoggedIn 的值来渲染不同的内容:

-- -------------------- ---- -------
------ ----- ---- --------
------ ------ ---- -----------

------ ------- -------- ----- -
  ------ -
    -----
      ------------------ - -
        ----------- ----------
      - - -
        ---------- --- -------
      --
    ------
  --
-

总结

在 React 中,全局对象 global 可以用于保存全局状态和共享数据。但需要注意的是,不能在组件之间共享状态,应该通过 props 将状态从父组件传递到子组件。使用全局对象来共享状态只适用于少数情况,切勿滥用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647bf770968c7c53b0734972

纠错
反馈