测试与性能
本页涵盖 Redux/RTK Query 应用的测试策略和性能优化技巧。
测试 Redux 切片
基础 Reducer 测试
// user.slice.test.ts
import reducer, { userLoggedIn, userLoggedOut } from './user.slice';
describe('用户切片', () => {
const initialState = {
account: null,
isAuthenticated: false,
};
it('应处理 userLoggedIn', () => {
const account = '0x123...';
const actual = reducer(initialState, userLoggedIn({ account }));
expect(actual.account).toBe(account);
expect(actual.isAuthenticated).toBe(true);
});
it('应处理 userLoggedOut', () => {
const loggedInState = {
account: '0x123...',
isAuthenticated: true,
};
const actual = reducer(loggedInState, userLoggedOut());
expect(actual.account).toBeNull();
expect(actual.isAuthenticated).toBe(false);
});
});测试实体适配器
测试选择器
简单选择器
记忆化选择器
使用 MSW 测试 RTK Query
设置 MSW
测试查询
测试 Mutation
测试乐观更新
性能优化
将 selectFromResult 以防止重新渲染
避免选择整个状态
记忆化昂贵的选择器
对规范化数据使用实体适配器
调整 RTK Query 缓存设置
预取以获得更好的用户体验
轮询策略
Redux 开发者工具
在开发环境中启用
动作净化器
在 DevTools 中净化敏感数据:
最佳实践清单
性能
测试
代码质量
要避免的反模式
监控性能
跟踪选择器调用
监控重新渲染
下一步
最后更新于