Reselect是什么以及它在ReactJS中是如何工作的
在 ReactJS 中, Reselect 是一个帮助提供有效计算数据的库,使用 selectors 创建记忆化选择器。它主要与 Redux 一起使用,Redux是一个在React应用程序中用于状态管理的库。在本文中,我们将了解Reselect库及其不同的函数。
createSelector函数: createSelector是Reselect库提供的主要函数。它用于在Redux应用程序中创建记忆化选择器。该函数接受一个或多个输入选择器和一个转换函数作为参数,并返回一个记忆化选择器函数。
语法:
创建React应用程序:
步骤1: 使用以下命令创建React应用程序:
步骤2: 在创建项目文件夹,即 reselectdemo 之后,使用以下命令进入该文件夹:
步骤3: 在您的项目中使用以下命令安装Reselect库:
项目结构:
导入createSelector函数:
示例 1: 在这个示例中,我们将看到如何使用 reselect。首先,我们需要使用以下命令安装 redux 和 react-redux 库:
- counterReducer.js
- store.js
现在,我们需要使用Reselect来创建选择器。
- selectors.js
现在,创建一个React组件并将其连接到Redux Store。
- Counters.jsx
现在,在您的 App.js 文件中渲染以下组件:
运行步骤: 从项目的根目录中使用以下命令运行应用程序。
输出:
在上面的示例中, Counters 组件使用Reselect选择器 getSquare 和 getCube 从Redux store的派生值计算派生数据。当我们增加计数时,Reselect选择器动态计算平方和立方值,根据Redux store中当前计数值提供更新的派生数据。
示例2: 在这个示例中,我们有一个包含用户姓名和年龄的用户列表。初始的过滤器值在App.js
组件中设置为30,使用setFilter
动作。getFilteredUsers
选择器根据用户的年龄对用户进行过滤,只包括年龄大于或等于过滤器值的用户。
- selectors.js
- actions.js
现在,我们将为我们的应用程序创建Reducers。
- reducers.js
现在,我们将创建一个 Redux Store。
- store.js
- App.js 文件
在你的 React App 的 index.js 文件中渲染 App 组件:
输出: