React Hooks与React-redux

时间:2019-06-26 09:06:13

标签: reactjs react-native react-redux

在将钩子引入Reactjs之后,它们是否可以很好地替代Redux这样的全局商店管理?关于他们表现的反应。

我在最近的项目中使用了Reduxredux-saga,但是在引入钩子之后,我有兴趣替换它们。

1 个答案:

答案 0 :(得分:5)

您需要了解的一件事是,钩子并不能代替redux商店,也不是用于全局商店管理。您可以使用钩子来简化组件的实现(将类组件替换为功能性组件),组件本身仍将依赖于存储在redux存储中的某些数据。您使用redux,以便应用程序中的多个组件可以使用同一redux存储。

例如,假设您有两个组件,分别是<Hello>和“ <Welcome>”,其中<Welcome>表示“ Hello user_name”。现在,这两个组件都需要相同的数据,即user_name。如果我们使用redux存储,我们可以将数据存储在一个位置,并通过将其作为道具在整个应用程序中使用。现在,我们可以使用钩子而不是类组件来实现<Hello>-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSInteger theme = [[NSUserDefaults standardUserDefaults] integerForKey:@"theme"]; if (indexPath.row == 0) { theme = 0; }else if (indexPath.row ==1){ theme = 1; } [[NSUserDefaults standardUserDefaults] setInteger:theme forKey:@"theme"]; [[NSUserDefaults standardUserDefaults] synchronize]; [self changeTheme:theme]; [tableView reloadData]; } -(void)changeTheme:(NSInteger)theme{ if(theme==0){ // do necessary changes for theme =0 for View Controller except cells }else{ // do necessary changes for theme =1 for View Controller except cells } } ,但是它们所需的数据应该来自全局存储。