reactjs - 每次当我的 redux 状态更新时,我的整个页面都在加载。不完全从服务器加载资源,但
问题描述
每次当我的 redux 状态更新时,我的整个页面都在加载。不完全从服务器加载资源,而是刷新页面内的组件?
以下是我的店铺代码。PS:我正在使用多个商店并使用组合减速器将它们组合起来。
import { createStore, combineReducers, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import logger from "redux-logger";
import { User } from "./User";
import { Restaraunt } from "./Restaraunt";
import { Dish } from "./Dishes";
import { Cart } from "./Cart";
import { createForms } from "react-redux-form";
import { InitialFeedback, RegisterUserDetails, RegisterRestarauntDetails, addDishDetails } from "./forms";
export const storeConfig = () => {
const store = createStore(
combineReducers({
user: User,
restaraunts: Restaraunt,
dishes: Dish,
cart: Cart,
...createForms({ feedback: InitialFeedback }),
...createForms({ registeruser: RegisterUserDetails }),
...createForms({ registerres: RegisterRestarauntDetails }),
...createForms({ addDish: addDishDetails })
}),
applyMiddleware(thunk, logger)
);
return store;
};
我所以我正在使用我提到的特定页面的购物车。因此,每当我的购物车更新时,我的整个页面都会再次加载。
解决方案
老实说,这有点太宽泛了。
您应该查看 React 应用程序中的每个组件,并确保它们仅在需要时重新渲染。你可以做的事情:
shouldComponentUpdate
如果您有基于类的组件并且仅在少数道具更改时才应该更新,则可以使用生命周期。- 您可以使用它
React.memo
来记忆组件并防止不必要的重新渲染。 useCallback
挂钩功能以记住它们。
推荐阅读
- amazon-web-services - 使用 terraform 为多个现有 s3 存储桶创建 s3 存储桶策略
- javascript - TypeError:setState 不是 React 中的函数
- java - 如何避免在 Java 中测试静态方法?
- html - 需要默认关闭手风琴
- c# - NLog 在必要时不记录所有内容
- kotlin - 运行简单代码的 kotlin intelliJ 得到错误
- javascript - 使用 jQuery 操作复选框
- spring-boot - Spring 安全性未重定向到给定的 OAuth 身份验证 URL
- python - 我正在尝试将 jwt 合并到我的代码中,但出现模块错误
- scipy - 检查多个数据点是否在 1-sigma 内相互一致