This is a on-going complex react project that uses redux.
- creact react app
- set up yarn, .gitignore, eslint
- add the configure files
- understand every single npm scripts (not too familiar with the cracle part)
- make the whole thing work
- read react context and HOC
- learn Redux: https://redux.js.org
- lodash (composing and piping) and currying
- functional programming, pure functions, immutable and immer
- refactor todo code with redux toolkit
- try to understand JWT login
- make auth0 work
- redux-saga vs. redux-thunk
- refactor the todo app with react-redux (no toolkit)
- understand JWT/auth0 and see how the user data flows
- delete parts that are irrelevant to shopping cart and login
- promise, async, await
- event loop, micro task, macro task, optional chaining: sync => main thread, async => event queue, macro(setTimeOut()), micro(promise)
- understand config routes and products (still got lots of questions, hard to follow)
- delete all routes except for /products (not yet comfortable)
- try chrome debugger
- sql normalization
- DOM vs. virtual DOM, Reconciliation
- ref and useRef
- promise, async, generator
- interview questions
- try to understand products related pages and delete all pages other than products list
- replaced the form with react hook form in my todo app
- useHistory, useParams, useLocation and useRoutematch in react router dom
- redo orders
- read deep copydeep copy2
- read react deep dive
- read diffing algorithm in react