I'm building a Next.js app and it currently is using Redux. As I am building it I am wondering if the use of Redux is really necessary and if its use is actually an anti-pattern. Here is my reasoning:
In order to properly initialize the Redux Store in Next.js, you must create a custom App
component with a getInitialProps
method. By doing this you are disabling the Automatic Static Optimization that Next.js provides.
By contrast, if I were to include Redux on the client-side, only after the App has mounted, then the Redux store will reset after every server-side navigation. For instance, I have a Next.js app that initializes the Redux store on the client-side, but when routing to a dynamic route such as pages/projects/[id]
, the page is server-side rendered, and I have to re-fetch any information that was in the store.
My questions are:
- What are the benefits of a Redux store in this circumstance?
- Should I initialize the store in the root
App
component and forego the Automatic Static Optimization? - Is there a better way to do to manage state in Next.js 9.3 with
getStaticProps
and the other data fetching methods - Am I missing something?