So basically I have an app with a single component tree. App
as a parent and then it goes down from there. Initially, all of the states are obviously centralized from the parent component App
, as it is normally, and then the state is passed per component via props. We all know this is a hassle as the component tree gets bigger and bigger.
I'm studying React-Redux and just curious if I always have to use connect()
and then each create a mapStateToProps
and mapDispatchToProps
for each and all my components including the subcomponents? Is there a one-off way to do this? Isn't it possible for my many components to just access the entire store without mapping each state/dispatch to props one-by-one, which I find repetitive and time-consuming?
I came from a Vue-Vuex background (although my Vuex experience is limited) and React-Redux is just a whole different ball wax, if not quite a lot more complicated IMO.
With Redux you don't have to connect all the components to its store. You only connect the components that really need it. For example, if a connected component has children then it might be simpler not to connect the children to Redux but rather let the connected parent drive the updates for its children. Grandkids can be connected but not their immediate children and so forth. There can be many approaches and every component can still have its own private state in addition to Redux store.
Currently React.FunctionComponent
s are in fashion and you can use useReducer
hook instead of connect
though you will have less possibilities to fine-tune for performance with the hook.