Tal*_*jam 4 reactjs react-component
我正在处理来自与其他表有许多关系的表的 API 数据。它使用参考表和连接表。我必须使用跨多个(如果不是全部)组件共享的数据。在 App.js/root 组件中进行所有 api 调用是否不好?为什么或者为什么不?
编辑:我目前正在使用 redux,并考虑将所有引用表值存储在全局状态中,这样我就可以在需要的地方进行查找。
API 响应示例
{
"name": "Adam"
"schoolId": 2,
"countryId": 6,
}
Run Code Online (Sandbox Code Playgroud)
学校范例参考表
{
"id": 2,
"name": "High School",
}
Run Code Online (Sandbox Code Playgroud)
国家示例参考表
{
"id": 6,
"name": "Bulgaria"
}
Run Code Online (Sandbox Code Playgroud)
应用程序.js
function App({ getCountries, getSchools }) {
// Get all reference table data
useEffect(() => {
getCountries();
getSchools();
// get...(); All other reference tables
}, [
getCountries,
getSchools,
]);
return (
<Provider store={store}>
<div className="App">
<Router>
<Fragment>
<div className="d-flex align-items-stretch wrapper">
<div id="sidebar">
<div className="sidemenu position-fixed">
<Sidebar />
</div>
</div>
<div className="content">
<Navbar />
<main className="container-fluid">
<Switch>
<Route component={Routes} />
</Switch>
</main>
</div>
</div>
</Fragment>
</Router>
</div>
</Provider>
);
}
export default connect(null, { getCountries, getSchools })(App);
Run Code Online (Sandbox Code Playgroud)
每当一点数据发生变化时,调用应用程序根组件中的所有 API 都会带来整个应用程序重新渲染的风险。更好的做法是让子组件在渲染树中调用 API 来尽可能获取它们所需的微小数据,如果您使用的是基于类的组件,我会说使用 useEffect挂钩或相应的 API。这样,一条数据的更改会导致特定组件重新渲染,但 DOM 中的其他组件完好无损。
为了进一步提高性能,您可以引入 Redux 等状态管理库并利用缓存。
调用 API 来获取还不需要的数据并不是一个好习惯。这会产生不必要的成本并增加处理资源的不必要的负担。
| 归档时间: |
|
| 查看次数: |
7749 次 |
| 最近记录: |