
Explore a personal journey from learning JavaScript to mastering React and Redux, and see how frontend techniques and DOM manipulation power career growth in modern web development.
Learn what React is as a JavaScript library, not a framework, enabling incremental adoption and a fast virtual DOM with a component-based UI, backed by Facebook.
Discover how React uses a virtual DOM to mirror the real DOM, enabling faster manipulation by rendering only the differences between the two, rather than the entire page.
Learn how GSX lets you write HTML-like syntax inside JavaScript to build the virtual dom and render it with React Dom Render, including className and camelCase handlers.
Explore how to render components inside JSX by composing a parent with child components, like user info, and reuse them through props while preserving state and side effects.
Learn to bootstrap a React app with Create React App, explore component-based development, and practice converting parts of a website into function-based components with hooks.
Explore what Redux is as a centralized, predictable state management solution for any JavaScript library, not just React, and learn debugging with its time travel tools and ecosystem.
Master the three principles of redux: a single global store as the only source of truth, read-only state, and applying changes through dispatched actions and a pure-function producer.
Dispatch actions with a type and payload, then middleware handles asynchronous calls in the redux saga workflow before reducers produce the new state.
Designs a to-do app interface with material components, including an app bar with logo and title, a text field and add button, and separate to-do items and completed sections.
Design a todo item component using Material UI elements, featuring a checkbox to mark completion, a delete icon, and an important flag, all within a list item styled with typography.
Create the react app from scratch using npx, generating public and source folders with a ready package.json and react and react-dom dependencies; Inpex provides boilerplate out of the box.
Boot a React app from scratch, run it on localhost:3000, set up index.js and a basic app component, and install Redux, Redux Saga, Redux DevTools, and Material UI with icons.
Set up redux-saga from scratch by creating actions, middleware, and reducers, binding a store to the app with react-redux provider, and implementing takeEvery to manage a to-do initial state.
Note:
If you are already familiar with the Material UI website and know how to use the components and adjust props, you may skip this lecture video.
Add an app bar with a toolbar, typography, and a 50-px logo from the public folder, importing typography and components, using static positioning and an icon button with alternate text.
Create and apply styles using makeStyles and useStyles in a JavaScript stylesheet, then build a UI with Material UI containers and papers, centering content with padding, margins, and color tweaks.
Build a Redux-driven to-do app in React using Material UI, with a text field and add button to create items, dispatched actions to update state, and checkboxes to toggle completion.
Toggle a todo's completed status by dispatching a toggle completed action with its id, updating state to flip the completed flag and apply a strikethrough.
Use a delete icon from material icons as a secondary action in the todo list, dispatch a delete todo action, and update state by filtering out the removed item.
Resolve todo adder issues by wiring the TextField input to a ref, clearing the field after each add, and conditionally adding only when a title exists to avoid empty items.
Learn how to persist a to-do app's state in the browser with local storage, using setItem, getItem, JSON.stringify, and JSON.parse to survive page refreshes.
Learn how to use Jest for simple, fast JavaScript testing with zero config setup. Explore test blocks, snapshots, Babel integration, code coverage, and mock techniques to test your functions.
Install npm packages and babel presets, configure babel for jest, then run unit tests to validate redux reducers and the register file.
Learn to write unit tests for a redux reducer by mocking external libraries, defining an initial state and actions like add todo and toggle completed.
Generate coverage report to assess unit tests by adding a coverage script, producing a file-by-file table of statement coverage percentages, and aiming for 100 percent coverage for reliability.
Are you a beginner to React, Redux or Material UI ?
Do you feel setting up redux-saga, understanding and remembering it is difficult ?
Do you find it difficult to understand all the different pieces involved like Webpack, JSX and Transpilation ?
Are you confused about how to properly unit test React components using Jest ?
Don't worry, I have been there too.
So I decided to create a workshop for it in order to bring clarity to the absolute beginners who want to get started in just 1 day. You just need basic javascript knowledge to join the workshop
Skills can pay the bills.
The number of jobs for the trio combination of ( React, Redux, Material-UI ) has increased and they are demanding skills to have in your CV in 2021.
The fact is, not everyone can easily understand and start building projects with React and use Redux with Material UI right away. But as a beginner, you will need a bit of push. Online documentation is great. I don't deny it. But with my hands-on experience, I believe I can help you give that initial push. Code with me and learn how to bootstrap without generators.
We will be using concepts like react hooks, redux setup, refs, material components & state persistence while building this React app and then give you the source code for future reference. You can use this as a bootstrap while working on your office projects and quickly configure stuff. Say No to StackOverflow for things that you can remember. This saves you time to focus on the core logic in your projects.
Unit testing with Jest
Unit testing the redux state of a react component is so critical because the reducer function dictates the behaviour of your app simply because it controls the entire state.
Mocking external libraries and exports are crucial during testing because we are interested to verify only our code changes.
In order to achieve this, we will make use of jest mock fn( ) to bypass the undesired portions of the code and make sure our redux reducer is stable and protected from future code changes which may introduce potential damage.
I hope you like the workshop.
Warm regards,
Manoj Satish Kumar