使用 redux-intl-connect 包构建多语言应用

阅读时长 7 分钟读完

在开发一个多语言的前端应用时,使用 React 的最常见方式是将多语言数据保存在应用状态的一部分中。而 redux-intl-connect 包的作用就是使连接 Redux 状态和 react-intl 的国际化消息组件变得更加容易。

redux-intl-connect 是什么?

redux-intl-connect 是一个 npm 包,它提供了一些 Redux 组件和简化了 React Intl 组件的 API。它使 React Redux 应用程序更容易使用 React Intl 的国际化消息组件。

redux-intl-connect 包提供了一个用于连接 Redux 应用状态到 react-intl 组件的高阶组件。它也提供了一个 HOC 来连接 Redux 应用状态和格式化国际化消息的 react-intl 组件。

安装

你可以通过 npm 安装 redux-intl-connect,使用以下命令:

基础使用

redux-intl-connect 包提供了两个 HOC connectReduxToProps() 和 connectFormatMessage() 分别用于连接 Redux 应用状态到 react-intl 组件和格式化国际化消息的 react-intl 组件。使用这些 HOCs 之前需要进行一些配置。

配置

首先,你需要在 Redux 应用中安装 redux-intl-reducer 包 并将其添加到 rootReducer 中:

然后,你需要在 Redux store 中使用 applyMiddleware 来启用 redux-intl-reducer 包的中间件。你也需要在根组件中添加 ReactIntlProvider 来为 redux-intl-reducer 包提供区域设置和调度器。

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

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

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

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

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

connectReduxToProps()

connectReduxToProps() 提供了一个高阶组件,它允许 react-intl 组件连接到 Redux 应用程序的状态。

以下是 connectReduxToProps() 的用法示例:

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

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

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

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

connectFormatMessage()

connectFormatMessage() 提供了一个 HOC,它允许你连接 react-intl 组件到 Redux 应用程序状态,并从中获取已格式化的国际化消息。

以下是 connectFormatMessage() 的用法示例:

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

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

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

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

高级使用

connectReduxToProps() 和 connectFormatMessage() 也可以通过传递配置参数进行高级使用。

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

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

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

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

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

withRef 选项允许您使用 ref 访问包装组件的实例。intlPropNamemessagesPropName 允许您更改传递到包装组件的属性名称。

总结

redux-intl-connect 包提供了一些功能来帮助我们更容易地连接 Redux 应用状态到 react-intl 组件。它的基础使用非常简单,而高级选项可以让我们更灵活地使用它。当我们需要构建多语言的前端应用时,redux-intl-connect 包是一个非常有用的工具,可以使我们更加轻松地完成任务。

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

纠错
反馈