react-community-tools-practices-cheatsheet
freeCodeCamp
react-community-tools-practices-cheatsheet | freeCodeCamp | |
---|---|---|
10 | 39 | |
325 | 388,278 | |
- | 0.7% | |
0.0 | 10.0 | |
over 1 year ago | 6 days ago | |
JavaScript | TypeScript | |
- | BSD 3-clause "New" or "Revised" License |
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.
react-community-tools-practices-cheatsheet
- State Management in React Applications
-
How I write React after 8 years
Eh, there was entirely valid reasons for the backlash :)
Redux _was_ overused in the first couple years. The original patterns _were_ very boilerplate-y. There _are_ a lot of other good tools for varying use cases that overlap with things that people have used Redux for: Context for prop drilling, React Query / Apollo for data fetching, Zustand/Jotai/Mobx/five-million-other-libs for state management.
Redux will never be the "must use this" lib again the way it was there for a couple years.
And that's a _good_ thing, because folks should take time to think about what problems they actually need to solve in their apps and pick the tools that work best for those problems.
But it's also true that Redux _is_ still a useful tool, and that RTK has addressed the pain points in using Redux. So, still very much a viable choice today, and the positive feedback we get on RTK daily shows that.
Really, the bigger issue today is that a lot of folks don't seem to understand the technical differences, tradeoffs, and intended use cases between a lot of these tools.
I wrote an extensive post describing the differences between Context and Redux to try to help with that:
- https://blog.isquaredsoftware.com/2021/01/context-redux-diff...
I've also been trying to start up a community-driven site to list common tools for various use cases (state management, styling, build tools, data fetching, etc), to act as a resource to help clarify this sort of confusion:
- https://github.com/markerikson/react-community-tools-practic...
Sadly I haven't had time to push it forward myself due to all the other responsibilities and tasks on my todo list, but hopefully at some point we can get enough info filled in for it to be a real resources that we can point people to.
-
Redux is Poison
In fact, I am literally trying to put together a community-driven site that would list commonly used tools for use cases like state management and styling, and describe their tradeoffs, specifically because I want people to make informed decisions.
-
UIs are not pure functions of the model
Good question!
The really short answer is: mostly looking at NPM download stats, Github "depended by" numbers, and random polls on Twitter.
Which are all _horribly_ flawed metrics, but they're also all we have to go by.
I wrote a couple longer comments on Reddit a while back that went into more details on some of the numbers and the potential flaws in using them:
- https://www.reddit.com/r/reactjs/comments/lcgqnd/state_manag...
- https://www.reddit.com/r/reactjs/comments/skbyb1/the_most_po...
and unfortunately you asking me about this is tempting me to turn those comments into a blog post with some additional thoughts :)
I'll definitely agree that Redux usage has peaked in _relative_ terms, although as you can see from the download numbers it seems to still be growing in _absolute_ terms. Also it's entirely possible that fewer new projects are choosing Redux.
Then again, how do we even count "usage" in the first place? I've seen Web3 app boilerplate repos that include Redux Toolkit. If 1000 people clone that repo and play with it, how do we compare that usage conceptually vs one app using Mobx that's been around for years and has a bunch of developers working on it daily?
As I've pointed out in a number of podcasts and articles: I'm not trying to convince people they _must_ use Redux, or even that they _should_ use Redux. I just want people to be aware that modern Redux is way easier than legacy Redux, that Redux _is_ still widely used and is a viable choice, and what some of the tradeoffs are when using Redux or any other state management library.
I've actually been trying to get the community to come together and work on a centralized site that would list tools in different use cases and categories such as state management, styling, data fetching, and build tooling, describe purpose / use cases / tradeoffs for each tool, and have that as a recognized resource for people to use when researching what to use for a project. You can see the original RFC discussion and prototype site here:
- https://github.com/markerikson/react-community-tools-practic...
- https://react-community-tools-practices-cheatsheet.netlify.a...
Sadly I haven't had time to push this forward, and it needs to have more people involved and helping fill out content on the various topics (not just me).
-
Building first React project, and lost on State Management
Fortunately, we're starting to make some headway on https://github.com/markerikson/react-community-tools-practices-cheatsheet/discussions/1 ! We recently got a PR adding a page covering the three Poimandres libs (Zustand/Jotai/Valtio), someone's filling out pages on styling approaches, etc.
-
Recap from Reactathon, if you missed the conference
(I will say this is the exact kind of guidance I'd like to have in the "React Community Tools" site I still want to build out as a resource, and I'm hopeful that we can get some content filled out and momentum behind that site later this year.)
-
Should we be teaching Redux in 2022?
Early last year, I proposed creating a "React Community Tools and Practices" resource site. The idea was to provide curated written guidance on the different tools and techniques that React devs commonly use to solve various problems, describe the purpose and tradeoffs of each tool, and give some general guidance on how to decide on what tool best solves your use case.
-
React State Management
Background: https://github.com/markerikson/react-community-tools-practices-cheatsheet/discussions/1
- What are the biggest issues you see with React in its current form?
- Top libraries to know about
freeCodeCamp
- Good coding groups for black women?
-
Codepen, React and Front End Development Libraries Projects
there are issues making codepen work with React, more so with the newest version, they even refer on the FFC to https://github.com/freeCodeCamp/freeCodeCamp/issues/45922
-
5 Open-Source Projects That Will Elevate Your Coding Game in 2024
⭐ FreeCodeCamp on GitHub
-
10 Issues That Will Help You Grow as a top contributor in Opensource 🏅🏅
Move the confetti logic to the related redux-saga #51908
-
How Open Source helped me get into the GitHub Octernships program.
I started open source software development a few months into my last internship, after one of my colleagues suggested it. When I made my first open source contribution, I realized how much of an impact I could create with this work, especially because of the size of the org I contributed to. My first PR was a feature that I added to the freeCodeCamp codebase; this repo has the highest number of stars on GitHub! I made this contribution in October, and to my surprise, I got an email in December informing me that I was one of the top contributors of 2022 to the freeCodeCamp codebase because of this contribution! I was elated and the sense of satisfaction that I got from this feat was something that I had not experienced before. freeCodeCamp was also the first open source community I was a part of, interacting with the maintainers in their Discord server daily to get my PRs merged and learn more about the codebase!
-
5 Awesome GitHub Repositories To Contribute To!
View on GitHub
-
Aspiring web developer; about to lose wifi for a long period. How can I spend my time learning without internet (much) access?
Your could setup FreeCodeCamp to use locally so you can carry on with your studies.
-
What are some of your favorite projects to support on GitHub?
I support financially: https://github.com/freeCodeCamp/freeCodeCamp they have done good work both on the dev side and the devops side.
- Studying Computer science for games in Algeria?
-
Stuck at Exercise Tracker
First of all, there are the tests: https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md
What are some alternatives?
redux - A JS library for predictable global state management
developer-roadmap - Interactive roadmaps, guides and other educational content to help developers grow in their careers.
use-context-selector - React useContextSelector hook in userland
hardhat-starter-kit - A repo for boilerplate code for testing, deploying, and shipping chainlink solidity code.
ducks-modular-redux - A proposal for bundling reducers, action types and actions when using Redux
html5-boilerplate - A professional front-end template for building fast, robust, and adaptable web apps or sites.
egui - egui: an easy-to-use immediate mode GUI in pure Rust
tech-interview-handbook - 💯 Curated coding interview preparation materials for busy software engineers
react-handbook - ⚛🤌 Modern approaches to architecture and feature development in React apps.
free-programming-books - :books: Freely available programming books
redux-toolkit - The official, opinionated, batteries-included toolset for efficient Redux development
coding-interview-university - A complete computer science study plan to become a software engineer.