在 React-Redux 应用程序中将实用程序函数放在哪里?
Where to put utility functions in a React-Redux application?
在 React-Redux 应用程序中,我有这样的状态:
state = {
items: [
{ id: 1, first_name: "John", last_name: "Smith", country: "us" },
{ id: 2, first_name: "Jinping", last_name: "Xi", country: "cn" },
]
}
我使用 React 组件渲染。
现在我需要一个函数来提供一个人的 "full name"。所以它不只是 "first_name + last_name" 而是取决于国家(例如,在中国它会是 "last_name + first_name"),所以有一些相对复杂的逻辑,我想把它包装在一个可以从任何地方使用的函数中反应组件。
在 OOP 中,我会创建一个 Person::getFullName()
方法来提供这些信息。然而,state
对象是一个 "dumb" 对象,其中子对象没有任何专门的方法。
那么一般来说,在 React-Redux 中管理它的推荐方法是什么?我所能想到的就是创建一个全局函数,例如 user_getFullName(user)
,它需要一个用户和 return 全名,但这不是很优雅。有什么建议吗?
我在我的应用程序中采用了为这种情况创建库的方法,到目前为止这对我来说效果很好。
在这种情况下,我会创建一个新模块,例如{ComponentRoot}/lib/user.js
导出函数 getFullName(user)
或可能 getFullName(firstName, lastName, country)
,视情况而定。
现在只需导入您需要功能的模块,不需要全局功能:
import React from 'react'
import {getFullName} from '../lib/user'
const Title = ({user}) =>
<div>
{getFullName(user)}
</div>
我们将 library 文件夹与 components 文件夹等放在同一层级,但您应该选择最适合您的文件夹。
首先,Redux has no opinion on the file structure of your application.
一些著名的样板项目将代码放入 utils/
文件夹中:
示例文件夹结构:
- 源/
- 组件/
- ...
- 减速机/
- ...
- 实用程序/
- ...
在 React-Redux 应用程序中,我有这样的状态:
state = {
items: [
{ id: 1, first_name: "John", last_name: "Smith", country: "us" },
{ id: 2, first_name: "Jinping", last_name: "Xi", country: "cn" },
]
}
我使用 React 组件渲染。
现在我需要一个函数来提供一个人的 "full name"。所以它不只是 "first_name + last_name" 而是取决于国家(例如,在中国它会是 "last_name + first_name"),所以有一些相对复杂的逻辑,我想把它包装在一个可以从任何地方使用的函数中反应组件。
在 OOP 中,我会创建一个 Person::getFullName()
方法来提供这些信息。然而,state
对象是一个 "dumb" 对象,其中子对象没有任何专门的方法。
那么一般来说,在 React-Redux 中管理它的推荐方法是什么?我所能想到的就是创建一个全局函数,例如 user_getFullName(user)
,它需要一个用户和 return 全名,但这不是很优雅。有什么建议吗?
我在我的应用程序中采用了为这种情况创建库的方法,到目前为止这对我来说效果很好。
在这种情况下,我会创建一个新模块,例如{ComponentRoot}/lib/user.js
导出函数 getFullName(user)
或可能 getFullName(firstName, lastName, country)
,视情况而定。
现在只需导入您需要功能的模块,不需要全局功能:
import React from 'react'
import {getFullName} from '../lib/user'
const Title = ({user}) =>
<div>
{getFullName(user)}
</div>
我们将 library 文件夹与 components 文件夹等放在同一层级,但您应该选择最适合您的文件夹。
首先,Redux has no opinion on the file structure of your application.
一些著名的样板项目将代码放入 utils/
文件夹中:
示例文件夹结构:
- 源/
- 组件/
- ...
- 减速机/
- ...
- 实用程序/
- ...
- 组件/