Even if you choose to use Redux in your project, you will still need to make decisions on …

Redux toolkit is a game-changer. It also gives your whole app the ability to access any piece of state in any component.

You should avoid duplicating state if possible and instead derive it where needed. Glad you liked it!

Thank you so much. Hi :) Since I got quoted here, I'd like to add some additional, er, "context" to the discussion :). Go with connect. For example, making form data global - that's just silly. With Redux, it allows my team and I to debug the application easily, separate the UI layer away from the data, and be able to understand what is going with the application at all times. :), Haing some showcases would surely bump those numbers even more over the years, as technical decision makers look for technologies that are proven in the industry most of the time :).

Little did they know is that without setting Context API properly, it could affect the entire application's performance. As a Redux user, I want to settle the war between Context API & Redux. With Redux we can have independent tests for 3 parts: I haven't actually got around to trying react-saga and am just using react thunk. Otherwise, I prefer how the hooks API reads. Redux Toolkit is good. With tools like the react-redux hooks API, and React’s useReducer hook, there’s no need to choose one over the other.

I should have mentioned that along with easy-peasy. If I faced with complex problem, then change useReducer with useSagaReducer, without use any global state.

Might not be a problem for everyone, but I was trying to quickly prototype something. If you later need to persist or share the state, you’re 90% done already. Redux packages gives us a certain recipe that we can follow and build rather than messing around with different react hook based stuff. , that's exactly why we created Redux Toolkit, Working with .Net Core & React - what I've learned, Creating time - The dev superpower you didn't know you had, unidirectional data flow makes it deterministic, Basic action creator functions (non-thunk), no need to understand any extra libraries, no extra libs to clutter the bundle size. No. I just have to follow whatever they prefer, right? Almost half of React apps use Redux (according to polls and dev surveys) - so you can probably figure out why it's so popular & unpopular at the same time. React supplies a useReducer hook that will interface with your Redux-style reducers. If you do put something into Redux state, you should always read it from Redux state. Just saw the results of the "State of Frontend 2020" survey, which once again shows basically that same result (48%): I'm Software Engineer who loves working with Javascript, React and NodeJs.

No, because there is a lot of state in an application which is ephemeral and too granular to provide very useful information for things like logging telemetry or time travel debugging.

This was a big no-no for our application since it is data-heavy and will keep on growing in the future. ‍ I'm also a big Typescript fan!

Thanks!

No. :). For example, the following form uses the local component state useState hook from React. Don't do this: An exhaustive list of Redux best practices and things to avoid can be found here - compiled by the Redux maintainers. I see the trend going towards Context lately so i'm putting more effort in going that way than staying with Redux which may dissappear in a year. You shouldn’t worry about performance unless it becomes an issue, but when you do, try both ways and see if it has an impact. However you're very right on saying that people should consider it, as there is 50% chance that they will meet this at the job.

In the future, React’s suspense API may help with saving and loading state. The problem Redux wanted to solve is predictable state updates. This is because you have to essentially test the component and the state at the same time. The React.createContext function which creates the context; The Provider (returned by createContext) which establishes the “electrical bus” running through a component tree; The Consumer (also returned by createContext) which taps into the “electrical bus” to extract the data; The Provider is very similar to React-Redux’s Provider. Yeah within the community we're discussing about showcases. This is all great news if you’d like to start using more local component state with the hooks API instead of Reduxing all the things. Learn how to unit test React components, and speaking of testing, learn about Test Driven Development (TDD) on TDDDay.com. Knowing where and why the state changes and having a "single source of truth" can be an advantage.

Hooks didn’t give us magical new state capabilities. But I should get around to trying that out too.

For example, imagine you have a component which handles permissions authorization for user actions: Now if you have a bunch of admin views that all require admin permission, you can create a higher-order component that composes in this permission requirement for all of them in with all your other cross-cutting concerns: The higher-order component API is convenient for this use-case, and it’s actually more concise than the hooks API (it requires less code), but in order to read the connect API, you have to remember that it takes mapStateToProps as the first argument, and mapDispatchToProps as the second argument, and you should be aware that it can take functions or object literals, and you should know the differences in those behaviors.

This is the same as Svelte vs. React, no matter how amazing I personally think Svelte is, the job perspective is much lower than React at the moment.

Even memoizing the child components would still cause them to re-render.

The end of @babel/polyfill: The more efficient alternative? server state - think if what you are storing is just server state instead of global application state, and in those cases consider solutions as react-query or swr.