reselect
Selector library for Redux (by reduxjs)
use-context-selector
React useContextSelector hook in userland (by dai-shi)
Our great sponsors
reselect | use-context-selector | |
---|---|---|
29 | 19 | |
18,643 | 1,622 | |
0.3% | - | |
8.3 | 6.5 | |
19 days ago | 18 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
reselect
Posts with mentions or reviews of reselect.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-12-30.
-
The complex React/Redux app that I don't hate
Each one of those method calls represents a potentially huge tree of nested method calls. And if we've implemented memoization, it would all run in O(n), where n is the total number of methods. There is no performance impact from the nested calls and we're guaranteed to respect all business rules at every level (DRY), while keeping each method easily readable. reselect is a perfectly good library that provides composability and memoization.
-
Coming from Java, I don’t think I ever understood the phrase “enough rope to shoot yourself in the foot” until I saw some of the super-complicated types people can make in Typescript.
But we needed this in Reselect because it has an incredibly variadic JS runtime API. You can pass in any number of input selectors, as either individual function arguments or one big array, and all the rest of the output behavior depends on those. This one giant MergeParameters type is effectively replacing 3300 lines of copy-pasta'd typedefs for 1...12 input selectors.
-
How to subscribe to a slice of array in redux such that the component subscribed re renders only when the slice changes.
One thing that can help is the new customization options in Reselect 4.1.x. You don't need a deep equal check here. Instead, you could use a shallow check as the resultEqualityCheck option. It would still end up having to re-run the filter statement, because the input array is being changed to a new reference when you do an update to any item in the array. Filtering the array does create a new result array reference. But, resultEqualityCheck: shallowEqual will reuse the previous result as long as the contents of the array are the same, and that will prevent the component from re-rendering.
-
Testing Redux Selectors with resultFunc
Over the years, as I've been using Redux, I've tried quite a few different forms of testing. Actions, reducers, sagas, selectors, some with more boiler plate results than others. One of the evolutions of testing that I've enjoyed the most has been with the library I use for selectors, reselect.
-
What's new in Redux?
While Reselect has always been a separate library from Redux itself, it's in our Github org. The previous maintainer had to stop working on it, so a couple months ago we did some major updates to Reselect. Reselect 4.1.x has huge improvements to its TS types for better inference, and adds a new set of customization options like cache sizes > 1.
-
React Interview Questions - Part 2 (Mid - Senior Level)
Fourth, Use Reselect / Re-reselect in Redux to Avoid Frequent Re-render. Reselect is a library for building memoized selectors that is commonly used for redux.
-
I wrote an article about Redux architecture for SwiftUI, you can achieve pretty amazing stuff using it. Below Hot Reload implemented in 30 minutes. More links in comments. It's worth at least getting familiar with this architecture :)
Another great tool used in the Redux world is Reselect. Storing the bare minimum data in the Redux store and then deriving data with memoization using Reselect. I had to create a poor man's version here. Feel free to check it out :)
-
What are some problems with Redux?
We've completely revamped the Reselect types in the last few weeks and added new cache size options to its API - see https://github.com/reduxjs/reselect/releases
- React State Management
-
The React roadmap for beginners you never knew you needed.
Reselect
use-context-selector
Posts with mentions or reviews of use-context-selector.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-05-22.
-
Surprising Performance Lessons from React Microfrontends in Production
Use of this implementation of useContextSelector
-
Inflist, an experiment using PureScript and React
Another technology I use regularly is Redux. But this time I wanted to manage the global state in a simpler and clearer way just using React hooks. I decided to go with a simple useReducer combined with theuseContextSelector hook which will avoid the whole application’s re-render caused by the native useContext hook.
-
Honestly, what is the best, pain-free state management in React right now?
To be clear: this is not a made up problem. There is a React RFC on the topic since June 2019, there is an experimental PR to the React codebase for this since January 2021. There are external packages like use-context-selector to work around it. As of today, there is no efficient way of partially subscribing to context value changes that is a native part of React.
- First time setting up a greenfield project professionally. Any caveats?
-
can someone TLDR-explain how react-redux is able to trigger rerenders for only the pieces of state that changed? As opposed to context+useReducer
And then there's this library that will allow you to accomplish this: https://github.com/dai-shi/use-context-selector
-
use-context-selector demystified
In a previous article about React context performance, I mentionned the library use-context-selector that allows you to avoid useless re-render.
-
I chose zustand over context api for my side project and my mentor is not happy about it. Am i doing the wrong here?
Use context selectors to fix some of the Context API performance issues: https://github.com/dai-shi/use-context-selector
-
Is Context with selector is good enough for state management?
This one https://github.com/dai-shi/use-context-selector it is well known Context with all benefits which Context gives, and with selector which is main benefit of state managers
-
Should I learn Redux or Zustand?
The real mystery is why do not use this context with selectors. and no more holywars! Selectors are here, so it won't kill performance, it's still easier and less boilerplative than RTK, it's easy to write wrappers around it to use immer or to enhance in some other way.
-
React State Management
can optimize performance and rerenders using https://www.npmjs.com/package/use-context-selector hook,
What are some alternatives?
When comparing reselect and use-context-selector you can also consider the following projects:
zustand - 🐻 Bear necessities for state management in React
Immer - Create the next immutable state by mutating the current one
recompose - A React utility belt for function components and higher-order components.
redux-saga - An alternative side effect model for Redux apps
effector-react - Business logic with ease ☄️
redux-toolkit - The official, opinionated, batteries-included toolset for efficient Redux development
react-redux - Official React bindings for Redux
Next.js - The React Framework
fluorine-lib
mobx-react
formik - Build forms in React, without the tears 😭 [Moved to: https://github.com/jaredpalmer/formik]
shasta - Dead simple + opinionated toolkit for building redux/react applications