Section Introduction Transcripts Course Overview Redux, it's one of the most popular libraries on GitHub, with over 30, 000 stars. That's because Redux is easy to use, highly performant, and extremely reliable, but, the biggest productivity gains go to prepared developers who understand advanced Redux. I'm Daniel Stern, also known as the code whisperer, and I am thrilled to present my new course, Advanced Redux. This is a course that can bring any student from Redux zero to office hero in just a few days. We'll teach you about thunks, selectors, sagas, middleware, and much more, using a winning combination of short lectures and hands on demos. So, do you want to improve your productivity as a web developer? Do you want to maximize your opportunities in your programming career? Or are you just using Redux at the office and want to stand out by stepping up your game? No matter who you are, you will benefit professionally and economically from learning Redux, by watching this course. I strongly recommend watching the first video right now, it doesn't cost a cent to get started. I look forward to seeing you there. Advanced Immutability Hello and welcome to module 2, entitled Advanced Immutability. In this clip, we're going to go over what we'll be covering in this module. First, we'll be having a quick recap of immutability. In this clip we'll take a few minutes to recap what we learned about immutability in Flux/Redux, and also go over some key points relating to all discussions about immutability. We'll take a bit of time to understand Immutable. js, which is the library we'll be using this time to manage our immutable state. We'll look at the advantages as well as the disadvantages of using immutability in your application. We'll set up the development environment that we'll be using for the rest of this course to make the application. After that, we'll discuss normalizing state shape, an important idea that relates to any Redux application, and interacts especially well with immutability. Finally we'll implement our applications default state, using an immutable object. In the next clip, we'll be doing an immutability recap. Advanced Combining Reducers Hello, and welcome to this module entitled Advanced Combining Reducers. Let's have a look at what we'll be covering in this module. So as we know, Redux comes with a combineReducers utility, we'll have a look at that utility and discuss the reasons why you might want to make your own. Relating to that we'll learn to understand the process for implementing our own combineReducers function. Finally, we'll implement this in our application in a way that's friendly to the Immutable. js library, which we've implemented. In the next clip, we'll look at limitations and advantages. Creating Redux Middleware In this module, we'll be learning about Redux middleware. Redux middleware is a powerful tool that is useful in almost all Redux applications. But what will we be covering in this module? First, we'll discuss the features of middleware, as well as the reasons why you might want to use it in your application. After that, we'll discuss middleware structure. Middleware all conforms to one overall structure, and we'll have a look at what that is. We'll also look at examples of popular middleware that's already available in repositories such as GitHub. We'll take an overview of the middleware we'll be building, which is a WebSockets based middleware for Redux. And finally, we'll implement that middleware in the application. In the next clip, we'll have an introduction to Redux Middleware. React-redux Welcome back. In this module, we'll be learning about and implementing React-Redux. React-Redux is a very powerful tool for adding views to our existing Redux application. Let's review what we'll be learning in this chapter. First, we'll ask the question, why use React-Redux in the first place, and look at some reasons why. We'll look at the relationship between React, Redux, and React-Redux. We'll analyze the two methods that are often associated with the React-Redux application, mapStateToProps, and mapDispatchToProps, then we'll take a moment to implement React-Redux in our application. We'll also discuss container and display components, which are part of the React-Redux family. After that, we'll discuss server-side rendering and find out how it can be done with Redux. Then lastly, we'll implement this server-side, or isomorphic functionality in our application. In the next clip, we'll discuss why we should use React-Redux. Redux Thunk Hello and welcome to this module entitled Redux Thunk. In this module, we begin the first of two, dedicated entirely to exploring individual Redux middlewares. In this clip we'll be discussing what we'll be learning in this module. We'll be covering the following things. First, we'll be answering the question, what is a thunk? Then we'll learn about the plugin Redux Thunk and how it connects the ideas of thunks and Redux. We'll learn about dispatch and getState, which are the two arguments passed to any thunk in a Redux Thunk application. Then, to solidify all of that, we'll be implementing Redux Thunk in our application. In this module, we'll also be learning to understand selectors. Selectors are a powerful tool that we'll be learning about that integrates closely with Redux Thunk. On that note, we'll take a moment to explore how exactly selectors and Redux Thunk work together. And lastly, we'll also be implementing selectors in our application. Redux DevTools Hello and welcome back. In this module we'll discuss and applyRedux DevTools. Redux DevTools are a useful tool for debugging any Redux application. So what will we be covering in this short chapter? First, we'll answer the question, what are Redux DevTools, then we'll demonstrate proper installation of the Redux DevTools. Finally, we'll look at how an application can be tested using these DevTools. So in the next clip we'll discuss what are Redux DevTools.