I'm a professional React developer, and these are the npm packages I use the most often.

Lucas Chen on October 10, 2019

About Me: I've been a professional web developer for just over 10 years now. I'm currently the lead web development instructor at Better Coding Aca... [Read Full]
markdown guide
 

A big NO from me to react-select. The library is bloated with features that you probably won't even use, but your users will still need to download the huge 25kb (already gzipped) chunk. Creating a select from scratch in React is not that time consuming and I'd rather go that way.

Besides this, a nice list! :D Thanks!

 

Totally agree with you. Downshift is a great library too, and very powerful, allowing more customization beyond the ones provided for react-select.

Great list btw Lucas 🚀

 
 

Just wondering on how you manage immutable data throughout your applications, where do you start and stop using them and fallback to native JS types?

For example - a project I work in uses Immutable in the redux store and mostly converts to native after the selector level. However some components take Immutable 'all the way down' causing confusion when switching between components that use Immutable props and those that don't. On top of that - some components use a mix which creates more confusion.

Second question - Immutable seems to be stuck at the next release candidate and appears not to be maintained anymore.

 

Hi Ben, thanks for your comment!

Just wondering on how you manage immutable data throughout your applications, where do you start and stop using them and fallback to native JS types?

The main two benefits to using Immutable are the performance benefits you get from manipulating data, and also giving your code a certain "structure" to it. However, you can only benefit from Immutable if you keep the data immutable - if at some point you run .toJS() on your data set, you're essentially losing any performance gains you get. This is why I only use Immutable in very specific use cases, namely for managing data within certain reusable components (I use it on a full-blown image uploader and also a file explorer at the moment). If you're doing it within Redux chances are you can save a couple bytes, reduce confusion and gain some performance from removing it :)

Second question - Immutable seems to be stuck at the next release candidate and appears not to be maintained anymore.

Highly doubt that that's the case. Immutable is maintained by Facebook, and also used by Facebook in its DraftJS rich text editor... so highly doubt it's going anywhere anytime soon.

 

Actually, the last commit was February 14, 2019 ( github.com/immutable-js/immutable-... ). And the 4.0 release has been a release candidate for 2 years. Additionally, you can read through this GH issue on their site: github.com/immutable-js/immutable-...

 

Hey. That makes sense, thanks for the reply! Good to hear that Immutable will be around for a while.

 

antd , material-ui as UI libraries.
immer for immutability in the app
Mobx and Mobx State tree for reactivity
lodash mainly for _get :P :P
formik for forms
memoize-one for memoizing the last result
lint-staged
uuidv4
numeraljs
From the top of my head.

 

Hey Pavan, thanks for your reply!

Have you heard of optional chaining? Might work as a replacement for _get depending on your use cases 😁

 

Any reason for picking axios instead of native fetch?

 

Axios has a far more fleshed out, intuitive API - and also has Node.js support 🙂

 

Ok I understand 😋
I have not taken Node in consideration because of you were talking about React

 
 

Great article!

For 9, I use moments luxon library. Its much smaller of a package to use and gives you most of the benefits of moment. I'm going to have to check out date-fns.

Redux is really great. I'm starting to shift myself to React hooks and the new useReducer/useContext functions. Together they could replace Redux. Here is a good read for that.

What are your thoughts on create-react-app? I found it replaces most of the things I had to configure with webpack.

 

Great Article! :) Redux is pretty great to communicate states between components if the application has a deep nested tree of components, but with the newer react(with hooks and stuff), i kind of liked context api by react to be more useful and to the point as i can use hooks with it! (Helps with the bundle size as well as i don't have to import the whole redux package)

P.S I'm still a relatively new developer, so i probably might overlook a lot of other useful functionality!

 

If you feel that you need state management but think that redux experience is lacking I invite you to take a look to overmindjs.org
The react typescript experience is my fav but you can use it with react js or vue, angular.

 

mobx definitely must be listed here! Such a lifesaver after redux.

 
 
 

I personally prefer downshift over react-select. Lightweight and simple, yet extensible. Some other components are too opinionated and not flexible enough. github.com/downshift-js/downshift

 

I made the switch from immutable to immer many months ago and I highly recommend doing so.

code of conduct - report abuse