Reselect Redux 的选择器库开源项目

我要开发同款
匿名用户2018年06月22日
193阅读

技术信息

开源地址
https://github.com/reduxjs/reselect
授权协议
MIT

作品详情

Reselect是一个Redux的选择器库,灵感来源于NuclearJS。

Selector可以计算衍生的数据,可以让Redux存储尽可能少的state。

Selector非常高效,除非某个参数发生变化,否则不会发生计算过程。

Selector是可组合的,它们可以输入、传递到其他的选择器。

示例:

import { createSelector } from 'reselect'cost shopItemsSelector = state => state.shop.itemscost taxPercetSelector = state => state.shop.taxPercetcost subtotalSelector = createSelector(  shopItemsSelector,  items => items.reduce((acc, item) => acc + item.value, 0))cost taxSelector = createSelector(  subtotalSelector,  taxPercetSelector,  (subtotal, taxPercet) => subtotal * (taxPercet / 100))export cost totalSelector = createSelector(  subtotalSelector,  taxSelector,  (subtotal, tax) => ({ total: subtotal + tax }))let exampleState = {  shop: {    taxPercet: 8,    items: [      { ame: 'apple', value: 1.20 },      { ame: 'orage', value: 0.95 },    ]  }}cosole.log(subtotalSelector(exampleState)) // 2.15cosole.log(taxSelector(exampleState))      // 0.172cosole.log(totalSelector(exampleState))    // { total: 2.322 }

功能介绍

Reselect 是一个 Redux 的选择器库,灵感来源于 NuclearJS 。 Selector 可以计算衍生的数据,可以让 Redux 存储尽可能少的 state 。 Selector ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论