reactjs - React 在哪里做 api 响应的映射
问题描述
这更像是一个关于我找不到答案的 React 应用程序结构的一般性问题。以下是我的文件夹结构,并且是官方 React Material UI 主题使用的文件夹结构:
▼ src
▸ api
▸ components
▸ contexts
▸ hooks
▸ icons
▸ lib
▸ pages
▸ slices
▸ store
▸ theme
▸ types
▸ utils
我想他们中的大多数都是不言自明的。但是,我面临一个不确定性;api调用。我正在使用 Axios 库来处理 api 请求。以下是category.ts
api 文件夹内部的示例:
import axios from '../lib/axios';
const endpoint = 'categories';
const readCategories = async () => axios.get<Array<Category>>(endpoint);
const postCategory = async (category: Category) => axios.post<Category>(endpoint, { params: category });
大多数时候,必须将响应 api 数据映射到不同的外观模型。这里有什么建议?
- 直接在组件中映射它?可能不如必须在多个组件中完成重复映射那么好......
- 直接在api层中转换数据,即
category.ts
我的情况下的文件?这将允许不在组件中做任何额外的工作,但不同的组件可能需要不同的转换。 - 在将 api 模型作为输入的单独方法中,将其转换为所需的模型,然后返回它?
- 不同的建议...
解决方案
您应该在 Utils 文件夹中的单独文件中创建单独的函数。这将使您的组件保持清洁。该功能可以重复使用。
推荐阅读
- javascript - 如何在css中的子元素的帮助下删除父元素上的所有内联样式?
- python-3.x - 在python的数据框中从多列中创建假人
- keras - 将图像数组和标签数据帧拆分为训练、测试和验证集
- nstableview - 通过上下文菜单隐藏 NSTableView(或 NSOutlineView)列:“无代码”解决方案
- javascript - 从 getBoundingClientRect 赋值
- reactjs - 找不到模块:无法解析“C:\Users\Syndicate\Documents\GitHub\simserp\sims\src\components\modules\country”中的“@mui/x-data-grid”
- java - 下载文件,防止网络错误删除
- algorithm - 为什么要使选择排序稳定?
- php - 如何禁止选择值出现并且只看到回显结果
- python - 我应该怎么做才能将多个 ctypes 数据类型分配给 Python 中的单个 ctypes 实例?