-
Урок 1.
00:01:09
Welcome to the Course
-
Урок 2.
00:02:59
What Is React? And Why Would You Use It?
-
Урок 3.
00:10:58
ReactJS vs Vanilla JavaScript
-
Урок 4.
00:04:23
Editing Our First React App
-
Урок 5.
00:02:56
About the Course
-
Урок 6.
00:03:09
One Course, Two Paths
-
Урок 7.
00:05:25
How To Get The Most Out Of This Course
-
Урок 8.
00:07:11
How To Create New React Projects
-
Урок 9.
00:02:52
Why Do We Need A Special Project Setup?
-
Урок 10.
00:01:50
Module Introduction
-
Урок 11.
00:01:01
Starting Project
-
Урок 12.
00:06:58
Adding JavaScript To A Page & How React Projects Differ
-
Урок 13.
00:08:05
React Projects Use a Build Process
-
Урок 14.
00:12:05
"import" & "export"
-
Урок 15.
00:07:02
Revisiting Variables & Values
-
Урок 16.
00:02:34
Revisiting Operators
-
Урок 17.
00:08:15
Revisiting Functions & Parameters
-
Урок 18.
00:02:12
Arrow Functions
-
Урок 19.
00:06:08
Revisiting Objects & Classes
-
Урок 20.
00:11:11
Arrays & Array Methods like map()
-
Урок 21.
00:05:17
Destructuring
-
Урок 22.
00:03:14
The Spread Operator
-
Урок 23.
00:05:29
Revisiting Control Structures
-
Урок 24.
00:00:53
Manipulating the DOM - Not With React!
-
Урок 25.
00:07:23
Using Functions as Values
-
Урок 26.
00:01:56
Defining Functions Inside Of Functions
-
Урок 27.
00:04:45
Reference vs Primitive Values
-
Урок 28.
00:01:49
Module Introduction
-
Урок 29.
00:06:08
It's All About Components! [Core Concept]
-
Урок 30.
00:03:07
Setting Up The Starting Project (
-
Урок 31.
00:04:43
JSX & React Components [Core Concept]
-
Урок 32.
00:05:53
Creating & Using a First Custom Component
-
Урок 33.
00:08:22
How React Handles Components & How It Builds A "Component Tree" [Core Concept]
-
Урок 34.
00:06:02
Using & Outputting Dynamic Values [Core Concept]
-
Урок 35.
00:04:43
Setting HTML Attributes Dynamically & Loading Image Files
-
Урок 36.
00:09:07
Making Components Reusable with Props [Core Concept]
-
Урок 37.
00:06:45
Alternative Props Syntaxes
-
Урок 38.
00:06:33
Best Practice: Storing Components in Files & Using a Good Project Structure
-
Урок 39.
00:06:16
Storing Component Style Files Next To Components
-
Урок 40.
00:08:07
Component Composition: The special "children" Prop [Core Concept]
-
Урок 41.
00:06:46
Reacting to Events [Core Concept]
-
Урок 42.
00:06:44
Passing Functions as Values to Props
-
Урок 43.
00:05:37
Passing Custom Arguments to Event Functions
-
Урок 44.
00:05:31
How NOT to Update the UI - A Look Behind The Scenes of React [Core Concept]
-
Урок 45.
00:10:29
Managing State & Using Hooks [Core Concept]
-
Урок 46.
00:04:51
Deriving & Outputting Data Based on State
-
Урок 47.
00:08:04
Rendering Content Conditionally
-
Урок 48.
00:05:13
CSS Styling & Dynamic Styling
-
Урок 49.
00:07:41
Outputting List Data Dynamically
-
Урок 50.
00:06:06
Module Summary
-
Урок 51.
00:01:27
Module Introduction
-
Урок 52.
00:04:38
You Don't Have To Use JSX!
-
Урок 53.
00:05:41
Working with Fragments
-
Урок 54.
00:03:15
When Should You Split Components?
-
Урок 55.
00:06:55
Splitting Components By Feature & State
-
Урок 56.
00:06:45
Problem: Props Are Not Forwarded To Inner Elements
-
Урок 57.
00:03:47
Forwarding Props To Wrapped Elements
-
Урок 58.
00:08:43
Working with Multiple JSX Slots
-
Урок 59.
00:08:45
Setting Component Types Dynamically
-
Урок 60.
00:02:10
Setting Default Prop Values
-
Урок 61.
00:02:18
Onwards To The Next Project & Advanced Concepts
-
Урок 62.
00:05:11
Not All Content Must Go Into Components
-
Урок 63.
00:03:59
New Project: First Steps Towards Our Tic-Tac-Toe Game
-
Урок 64.
00:04:14
Concept Repetition: Splitting Components & Building Reusable Components
-
Урок 65.
00:07:58
Concept Repetition: Working with State
-
Урок 66.
00:02:04
Component Instances Work In Isolation!
-
Урок 67.
00:04:55
Conditional Content & A Suboptimal Way Of Updating State
-
Урок 68.
00:07:05
Best Practice: Updating State Based On Old State Correctly
-
Урок 69.
00:07:43
User Input & Two-Way-Binding
-
Урок 70.
00:07:41
Rendering Multi-Dimensional Lists
-
Урок 71.
00:08:45
Best Practice: Updating Object State Immutably
-
Урок 72.
00:09:40
Lifting State Up [Core Concept]
-
Урок 73.
00:05:23
Avoid Intersecting States!
-
Урок 74.
00:06:18
Prefer Computed Values & Avoid Unnecessary State Management
-
Урок 75.
00:07:23
Deriving State From Props
-
Урок 76.
00:04:13
Sharing State Across Components
-
Урок 77.
00:05:53
Reducing State Management & Identifying Unnecessary State
-
Урок 78.
00:02:38
Disabling Buttons Conditionally
-
Урок 79.
00:04:29
Outsourcing Data Into A Separate File
-
Урок 80.
00:05:20
Lifting Computed Values Up
-
Урок 81.
00:05:30
Deriving Computed Values From Other Computed Values
-
Урок 82.
00:05:41
Tic-Tac-Toe Game: The "Game Over" Screen & Checking for a Draw
-
Урок 83.
00:05:29
Why Immutability Matters - Always!
-
Урок 84.
00:05:21
When NOT To Lift State Up
-
Урок 85.
00:03:17
An Alternative To Lifting State Up
-
Урок 86.
00:05:16
Final Polishing & Improving Components
-
Урок 87.
00:05:10
Module Introduction & A Challenge For You!
-
Урок 88.
00:04:49
Adding a Header Component
-
Урок 89.
00:05:08
Getting Started with a User Input Component
-
Урок 90.
00:10:29
Handling Events & Using Two-Way-Binding
-
Урок 91.
00:09:00
Lifting State Up
-
Урок 92.
00:05:42
Computing Values & Properly Handling Number Values
-
Урок 93.
00:09:03
Outputting Results in a List & Deriving More Values
-
Урок 94.
00:04:25
Outputting Content Conditionally
-
Урок 95.
00:03:58
Module Introduction & Starting Project
-
Урок 96.
00:03:23
Splitting CSS Code Across Multiple Files
-
Урок 97.
00:02:33
Styling React Apps with Vanilla CSS - Pros & Cons
-
Урок 98.
00:03:32
Vanilla CSS Styles Are NOT Scoped To Components!
-
Урок 99.
00:06:25
Styling React Apps with Inline Styles
-
Урок 100.
00:03:28
Dynamic & Conditional Inline Styles
-
Урок 101.
00:05:42
Dynamic & Conditional Styling with CSS Files & CSS Classes
-
Урок 102.
00:09:52
Scoping CSS Rules with CSS Modules
-
Урок 103.
00:08:04
Introducing "Styled Components" (Third-party Package)
-
Урок 104.
00:04:48
Creating Flexible Components with Styled Components
-
Урок 105.
00:11:08
Dynamic & Conditional Styling with Styled Components
-
Урок 106.
00:07:16
Styled Components: Pseudo Selectors, Nested Rules & Media Queries
-
Урок 107.
00:09:54
Creating Reusable Components & Component Combinations
-
Урок 108.
00:11:27
Introducing Tailwind CSS For React App Styling
-
Урок 109.
00:03:40
Adding & Using Tailwind CSS In A React Project
-
Урок 110.
00:05:23
Tailwind: Media Queries & Pseudo Selectors
-
Урок 111.
00:05:51
Dynamic & Conditional Styling with Tailwind
-
Урок 112.
00:04:16
Migrating The Demo App to Tailwind CSS
-
Урок 113.
00:04:27
Tailwind CSS: Pros & Cons
-
Урок 114.
00:01:27
Module Introduction
-
Урок 115.
00:01:17
The Starting Project
-
Урок 116.
00:08:32
Understanding React Error Messages
-
Урок 117.
00:07:24
Using the Browser Debugger & Breakpoints
-
Урок 118.
00:06:20
Understanding React's "Strict Mode"
-
Урок 119.
00:03:58
Using the React DevTools (Browser Extension)
-
Урок 120.
00:03:20
Module Introduction & Starting Project
-
Урок 121.
00:05:18
Repetition: Managing User Input with State (Two-Way-Binding)
-
Урок 122.
00:06:05
Introducing Refs: Connecting & Accessing HTML Elements via Refs
-
Урок 123.
00:02:15
Manipulating the DOM via Refs
-
Урок 124.
00:04:46
Refs vs State Values
-
Урок 125.
00:04:50
Adding Challenges to the Demo Project
-
Урок 126.
00:04:57
Setting Timers & Managing State
-
Урок 127.
00:08:31
Using Refs for More Than "DOM Element Connections"
-
Урок 128.
00:06:41
Adding a Modal Component
-
Урок 129.
00:06:08
Forwarding Refs to Custom Components
-
Урок 130.
00:07:15
Exposing Component APIs via the useImperativeHandle Hook
-
Урок 131.
00:08:51
More Examples: When To Use Refs & State
-
Урок 132.
00:04:59
Sharing State Across Components
-
Урок 133.
00:02:13
Enhancing the Demo App "Result Modal"
-
Урок 134.
00:06:56
Introducing & Understanding "Portals"
-
Урок 135.
00:03:12
Module Introduction & Starting Project
-
Урок 136.
00:02:30
Adding a "Projects Sidebar" Component
-
Урок 137.
00:05:01
Styling the Sidebar & Button with Tailwind CSS
-
Урок 138.
00:05:59
Adding the "New Project" Component & A Reusable "Input" Component
-
Урок 139.
00:07:04
Styling Buttons & Inputs with Tailwind CSS
-
Урок 140.
00:06:50
Splitting Components to Split JSX & Tailwind Styles (for Higher Reusability)
-
Урок 141.
00:08:20
Managing State to Switch Between Components
-
Урок 142.
00:13:23
Collecting User Input with Refs & Forwarded Refs
-
Урок 143.
00:06:01
Handling Project Creation & Updating the UI
-
Урок 144.
00:10:56
Validating User Input & Showing an Error Modal via useImperativeHandle
-
Урок 145.
00:05:47
Styling the Modal via Tailwind CSS
-
Урок 146.
00:15:23
Making Projects Selectable & Viewing Project Details
-
Урок 147.
00:04:45
Handling Project Deletion
-
Урок 148.
00:05:52
Adding "Project Tasks" & A Tasks Component
-
Урок 149.
00:15:24
Managing Tasks & Understanding Prop Drilling
-
Урок 150.
00:06:41
Clearing Tasks & Fixing Minor Bugs
-
Урок 151.
00:01:55
Module Introduction
-
Урок 152.
00:05:59
Understanding Prop Drilling & Project Overview
-
Урок 153.
00:05:18
Prop Drilling: Component Composition as a Solution
-
Урок 154.
00:02:18
Introducing the Context API
-
Урок 155.
00:07:35
Creating & Providing The Context
-
Урок 156.
00:05:50
Consuming the Context
-
Урок 157.
00:07:28
Linking the Context to State
-
Урок 158.
00:05:02
A Different Way Of Consuming Context
-
Урок 159.
00:01:26
What Happens When Context Values Change?
-
Урок 160.
00:06:21
Migrating the Entire Demo Project to use the Context API
-
Урок 161.
00:06:06
Outsourcing Context & State Into a Separate Provider Component
-
Урок 162.
00:10:07
Introducing the useReducer Hook
-
Урок 163.
00:10:15
Dispatching Actions & Editing State with useReducer
-
Урок 164.
00:03:39
Module Introduction & Starting Project
-
Урок 165.
00:07:24
What's a "Side Effect"? A Thorough Example
-
Урок 166.
00:02:49
A Potential Problem with Side Effects: An Infinite Loop
-
Урок 167.
00:05:32
Using useEffect for Handling (Some) Side Effects
-
Урок 168.
00:07:59
Not All Side Effects Need useEffect
-
Урок 169.
00:08:31
useEffect Not Needed: Another Example
-
Урок 170.
00:04:11
Preparing Another Use-Case For useEffect
-
Урок 171.
00:04:10
Using useEffect for Syncing With Browser APIs
-
Урок 172.
00:03:01
Understanding Effect Dependencies
-
Урок 173.
00:04:55
Preparing Another Problem That Can Be Fixed with useEffect
-
Урок 174.
00:04:50
Introducing useEffect's Cleanup Function
-
Урок 175.
00:08:10
The Problem with Object & Function Dependencies
-
Урок 176.
00:03:49
The useCallback Hook
-
Урок 177.
00:07:32
useEffect's Cleanup Function: Another Example
-
Урок 178.
00:03:45
Optimizing State Updates
-
Урок 179.
00:02:22
Module Introduction & Starting Project
-
Урок 180.
00:07:04
A First Component & Some State
-
Урок 181.
00:12:54
Deriving Values, Outputting Questions & Registering Answers
-
Урок 182.
00:06:58
Shuffling Answers & Adding Quiz Logic
-
Урок 183.
00:11:41
Adding Question Timers
-
Урок 184.
00:07:15
Working with Effect Dependencies & useCallback
-
Урок 185.
00:07:54
Using Effect Cleanup Functions & Using Keys for Resetting Components
-
Урок 186.
00:11:35
Highlighting Selected Answers & Managing More State
-
Урок 187.
00:17:44
Splitting Components Up To Solve Problems
-
Урок 188.
00:12:47
Moving Logic To Components That Actually Need It ("Moving State Down")
-
Урок 189.
00:08:08
Setting Different Timers Based On The Selected Answer
-
Урок 190.
00:15:10
Outputting Quiz Results
-
Урок 191.
00:01:17
Module Introduction
-
Урок 192.
00:08:42
React Builds A Component Tree / How React Works Behind The Scenes
-
Урок 193.
00:05:58
Analyzing Component Function Executions via React's DevTools Profiler
-
Урок 194.
00:08:05
Avoiding Component Function Executions with memo()
-
Урок 195.
00:06:07
Avoiding Component Function Executions with Clever Structuring
-
Урок 196.
00:07:06
Understanding the useCallback() Hook
-
Урок 197.
00:05:59
Understanding the useMemo() Hook
-
Урок 198.
00:07:16
React Uses A Virtual DOM - Time To Explore It!
-
Урок 199.
00:11:57
Why Keys Matter When Managing State!
-
Урок 200.
00:02:55
More Reasons For Why Keys Matter
-
Урок 201.
00:05:23
Using Keys For Resetting Components
-
Урок 202.
00:05:50
State Scheduling & Batching
-
Урок 203.
00:04:46
Optimizing React with MillionJS
-
Урок 204.
00:02:11
Module Introduction
-
Урок 205.
00:04:54
What & Why
-
Урок 206.
00:06:55
Adding a First Class-based Component
-
Урок 207.
00:11:39
Working with State & Events
-
Урок 208.
00:05:21
The Component Lifecycle (Class-based Components Only!)
-
Урок 209.
00:11:47
Lifecycle Methods In Action
-
Урок 210.
00:04:54
Class-based Components & Context
-
Урок 211.
00:02:43
Class-based vs Functional Components: A Summary
-
Урок 212.
00:09:53
Introducing Error Boundaries
-
Урок 213.
00:02:54
Module Introduction
-
Урок 214.
00:06:21
How (Not) To Connect To A Database
-
Урок 215.
00:03:26
Starting Project & Dummy Backend API
-
Урок 216.
00:05:08
Preparing the App For Data Fetching
-
Урок 217.
00:06:25
How NOT To Send HTTP Requests (And Why It's Wrong)
-
Урок 218.
00:04:00
Sending HTTP Requests (GET Request) via useEffect
-
Урок 219.
00:02:27
Using async / await
-
Урок 220.
00:05:28
Handling Loading States
-
Урок 221.
00:09:17
Handling HTTP Errors
-
Урок 222.
00:05:32
Transforming Fetched Data
-
Урок 223.
00:02:54
Extracting Code & Improving Code Structure
-
Урок 224.
00:12:01
Sending Data with POST Requests
-
Урок 225.
00:07:34
Using Optimistic Updating
-
Урок 226.
00:03:44
Deleting Data (via DELETE HTTP Requests)
-
Урок 227.
00:07:14
Practice: Fetching Data
-
Урок 228.
00:02:08
Module Introduction & Starting Project
-
Урок 229.
00:06:12
Revisiting the "Rules of Hooks" & Why To Use Hooks
-
Урок 230.
00:05:33
Creating a Custom Hook
-
Урок 231.
00:10:52
Custom Hook: Managing State & Returning State Values
-
Урок 232.
00:06:04
Exposing Nested Functions From The Custom Hook
-
Урок 233.
00:04:26
Using A Custom Hook in Multiple Components
-
Урок 234.
00:05:00
Creating Flexible Custom Hooks
-
Урок 235.
00:02:05
Module Introduction & Starting Project
-
Урок 236.
00:04:00
What Are Forms & What's Tricky About Them?
-
Урок 237.
00:10:27
Handling Form Submission
-
Урок 238.
00:11:13
Managing & Getting User Input via State & Generic Handlers
-
Урок 239.
00:04:36
Getting User Input via Refs
-
Урок 240.
00:09:04
Getting Values via FormData & Native Browser APIs
-
Урок 241.
00:04:39
Resetting Forms
-
Урок 242.
00:06:59
Validating Input on Every Keystroke via State
-
Урок 243.
00:07:54
Validating Input Upon Lost Focus (Blur)
-
Урок 244.
00:07:55
Validating Input Upon Form Submission
-
Урок 245.
00:05:00
Validating Input via Built-in Validation Props
-
Урок 246.
00:04:29
Mixing Custom & Built-in Validation Logic
-
Урок 247.
00:10:06
Building & Using a Reusable Input Component
-
Урок 248.
00:03:23
Outsourcing Validation Logic
-
Урок 249.
00:15:12
Creating a Custom useInput Hook
-
Урок 250.
00:01:32
Using Third-Party Form Libraries
-
Урок 251.
00:06:48
What-are-Form-Actions
-
Урок 252.
00:02:49
Module Introduction
-
Урок 253.
00:07:51
Adding Validation Checks
-
Урок 254.
00:12:22
Managing Form-dependent State with useActionState()
-
Урок 255.
00:10:05
Using User Input
-
Урок 256.
00:02:35
Moving the Action Function out of the Component
-
Урок 257.
00:03:27
A Demo App: Introduction
-
Урок 258.
00:09:41
Handling Form Submission
-
Урок 259.
00:06:24
Working with Asynchronous Form Actions
-
Урок 260.
00:05:07
Updating the UI with useFormStatus()
-
Урок 261.
00:04:33
Registering Multiple Form Actions
-
Урок 262.
00:05:27
Sending an HTTP Request via a Form Action
-
Урок 263.
00:03:48
Using the "pending" State from useActionState()
-
Урок 264.
00:09:48
Adding Optimistic Updating
-
Урок 265.
00:02:58
Module Summary
-
Урок 266.
00:04:15
Module Introduction & Starting Project
-
Урок 267.
00:06:41
Planning the App & Adding a First Component
-
Урок 268.
00:12:01
Fetching Meals Data (GET HTTP Request)
-
Урок 269.
00:07:40
Adding a "MealItem" Component
-
Урок 270.
00:02:52
Formatting & Outputting Numbers as Currency
-
Урок 271.
00:08:03
Creating a Configurable & Flexible Custom Button Component
-
Урок 272.
00:20:10
Getting Started with Cart Context & Reducer
-
Урок 273.
00:17:22
Finishing & Using the Cart Context & Reducer
-
Урок 274.
00:07:27
Adding a Reusable Modal Component with useEffect
-
Урок 275.
00:19:33
Opening the Cart in the Modal via a New Context
-
Урок 276.
00:08:02
Working on the Cart Items
-
Урок 277.
00:19:32
Adding a Custom Input Component & Managing Modal Visibility
-
Урок 278.
00:06:04
Handling Form Submission & Validation
-
Урок 279.
00:07:36
Sending a POST Request with Order Data
-
Урок 280.
00:26:24
Adding a Custom HTTP Hook & Avoiding Common Errors
-
Урок 281.
00:03:13
Handling HTTP Loading & Error States
-
Урок 282.
00:14:08
Finishing Touches
-
Урок 283.
00:03:14
Migrating To Form Actions
-
Урок 284.
00:05:09
Managing Form Status with Form Actions
-
Урок 285.
00:01:06
Module Introduction
-
Урок 286.
00:05:15
Another Look At State In React Apps
-
Урок 287.
00:06:20
Redux vs React Context
-
Урок 288.
00:05:49
How Redux Works
-
Урок 289.
00:15:15
Exploring The Core Redux Concepts
-
Урок 290.
00:03:05
More Redux Basics
-
Урок 291.
00:02:00
Preparing a new Project
-
Урок 292.
00:04:55
Creating a Redux Store for React
-
Урок 293.
00:03:14
Providing the Store
-
Урок 294.
00:05:09
Using Redux Data in React Components
-
Урок 295.
00:03:34
Dispatching Actions From Inside Components
-
Урок 296.
00:10:21
Redux with Class-based Components
-
Урок 297.
00:04:16
Attaching Payloads to Actions
-
Урок 298.
00:06:20
Working with Multiple State Properties
-
Урок 299.
00:05:08
How To Work With Redux State Correctly
-
Урок 300.
00:05:28
Redux Challenges & Introducing Redux Toolkit
-
Урок 301.
00:08:12
Adding State Slices
-
Урок 302.
00:04:48
Connecting Redux Toolkit State
-
Урок 303.
00:06:20
Migrating Everything To Redux Toolkit
-
Урок 304.
00:11:51
Working with Multiple Slices
-
Урок 305.
00:06:57
Reading & Dispatching From A New Slice
-
Урок 306.
00:05:04
Splitting Our Code
-
Урок 307.
00:03:54
Summary
-
Урок 308.
00:00:40
Module Introduction
-
Урок 309.
00:03:28
Redux & Side Effects (and Asynchronous Code)
-
Урок 310.
00:20:13
Refresher / Practice: Part 1/2
-
Урок 311.
00:18:01
Refresher / Practice: Part 2/2
-
Урок 312.
00:04:10
Redux & Async Code
-
Урок 313.
00:05:41
Frontend Code vs Backend Code
-
Урок 314.
00:09:00
Where To Put Our Logic
-
Урок 315.
00:06:01
Using useEffect with Redux
-
Урок 316.
00:12:50
Handling Http States & Feedback with Redux
-
Урок 317.
00:12:08
Using an Action Creator Thunk
-
Урок 318.
00:08:40
Getting Started with Fetching Data
-
Урок 319.
00:05:17
Finalizing the Fetching Logic
-
Урок 320.
00:05:38
Exploring the Redux DevTools
-
Урок 321.
00:01:54
Summary
-
Урок 322.
00:03:22
Module Introduction
-
Урок 323.
00:03:16
Routing: Multiple Pages in Single-Page Applications
-
Урок 324.
00:03:07
Project Setup & Installing React Router
-
Урок 325.
00:07:43
Defining Routes
-
Урок 326.
00:02:08
Adding a Second Route
-
Урок 327.
00:03:02
Exploring an Alternative Way of Defining Routes
-
Урок 328.
00:04:37
Navigating between Pages with Links
-
Урок 329.
00:08:25
Layouts & Nested Routes
-
Урок 330.
00:03:59
Showing Error Pages with errorElement
-
Урок 331.
00:06:38
Working with Navigation Links (NavLink)
-
Урок 332.
00:02:42
Navigating Programmatically
-
Урок 333.
00:07:45
Defining & Using Dynamic Routes
-
Урок 334.
00:03:23
Adding Links for Dynamic Routes
-
Урок 335.
00:10:39
Understanding Relative & Absolute Paths
-
Урок 336.
00:01:57
Working with Index Routes
-
Урок 337.
00:03:17
Onwards to a new Project Setup
-
Урок 338.
00:01:26
Time to Practice: Problem
-
Урок 339.
00:23:17
Time to Practice: Solution
-
Урок 340.
00:07:36
Data Fetching with a loader()
-
Урок 341.
00:02:52
Using Data From A Loader In The Route Component
-
Урок 342.
00:03:18
More loader() Data Usage
-
Урок 343.
00:02:19
Where Should loader() Code Be Stored?
-
Урок 344.
00:02:49
When Are loader() Functions Executed?
-
Урок 345.
00:02:54
Reflecting The Current Navigation State in the UI
-
Урок 346.
00:04:02
Returning Responses in loader()s
-
Урок 347.
00:01:15
Which Kind Of Code Goes Into loader()s?
-
Урок 348.
00:04:57
Error Handling with Custom Errors
-
Урок 349.
00:06:25
Extracting Error Data & Throwing Responses
-
Урок 350.
00:02:08
The json() Utility Function
-
Урок 351.
00:07:33
Dynamic Routes & loader()s
-
Урок 352.
00:07:41
The useRouteLoaderData() Hook & Accessing Data From Other Routes
-
Урок 353.
00:02:23
Planning Data Submission
-
Урок 354.
00:09:09
Working with action() Functions
-
Урок 355.
00:09:07
Submitting Data Programmatically
-
Урок 356.
00:04:03
Updating the UI State Based on the Submission Status
-
Урок 357.
00:06:58
Validating User Input & Outputting Validation Errors
-
Урок 358.
00:07:56
Reusing Actions via Request Methods
-
Урок 359.
00:09:12
Behind-the-Scenes Work with useFetcher()
-
Урок 360.
00:09:08
Deferring Data Fetching with defer()
-
Урок 361.
00:07:23
Controlling Which Data Should Be Deferred
-
Урок 362.
00:02:58
Module Summary
-
Урок 363.
00:01:11
Module Introduction
-
Урок 364.
00:09:09
How Authentication Works
-
Урок 365.
00:03:47
Project Setup & Route Setup
-
Урок 366.
00:07:36
Working with Query Parameters
-
Урок 367.
00:11:41
Implementing the Auth Action
-
Урок 368.
00:04:19
Validating User Input & Outputting Validation Errors
-
Урок 369.
00:01:56
Adding User Login
-
Урок 370.
00:06:33
Attaching Auth Tokens to Outgoing Requests
-
Урок 371.
00:04:22
Adding User Logout
-
Урок 372.
00:06:06
Updating the UI Based on Auth Status
-
Урок 373.
00:02:47
Adding Route Protection
-
Урок 374.
00:05:11
Adding Automatic Logout
-
Урок 375.
00:07:29
Managing the Token Expiratoin
-
Урок 376.
00:01:41
Module Introduction
-
Урок 377.
00:03:36
Deployment Steps
-
Урок 378.
00:04:48
Understanding Lazy Loading
-
Урок 379.
00:09:12
Adding Lazy Loading
-
Урок 380.
00:02:23
Building the Code For Production
-
Урок 381.
00:06:45
Deployment Example
-
Урок 382.
00:04:07
Server-side Routing & Required Configuration
-
Урок 383.
00:01:47
Module Introduction
-
Урок 384.
00:04:09
Project Setup & Overview
-
Урок 385.
00:06:00
React Query: What & Why?
-
Урок 386.
00:16:33
Installing & Using Tanstack Query - And Seeing Why It's Great!
-
Урок 387.
00:07:44
Understanding & Configuring Query Behaviors - Cache & Stale Data
-
Урок 388.
00:13:06
Dynamic Query Functions & Query Keys
-
Урок 389.
00:05:28
The Query Configuration Object & Aborting Requests
-
Урок 390.
00:06:56
Enabled & Disabled Queries
-
Урок 391.
00:11:30
Changing Data with Mutations
-
Урок 392.
00:06:40
Fetching More Data & Testing the Mutation
-
Урок 393.
00:08:51
Acting on Mutation Success & Invalidating Queries
-
Урок 394.
00:02:15
A Challenge! The Problem
-
Урок 395.
00:16:38
A Challenge! The Solution
-
Урок 396.
00:02:43
Disabling Automatic Refetching After Invalidations
-
Урок 397.
00:09:19
Enhancing the Demo App & Repeating Mutation Concepts
-
Урок 398.
00:08:58
React Query Advantages In Action
-
Урок 399.
00:04:50
Updating Data with Mutations
-
Урок 400.
00:13:07
Optimistic Updating
-
Урок 401.
00:07:48
Using the Query Key As Query Function Input
-
Урок 402.
00:20:27
React Query & React Router
-
Урок 403.
00:02:02
Module Introduction
-
Урок 404.
00:04:18
Creating a NextJS Project
-
Урок 405.
00:02:46
Understanding File-based Routing & React Server Components
-
Урок 406.
00:03:07
Adding Another Route via the Filesystem
-
Урок 407.
00:04:13
Navigating Between Pages
-
Урок 408.
00:03:23
Working with Pages & Layouts
-
Урок 409.
00:06:32
Reserved File Names, Custom Components & How To Organize A NextJS Project
-
Урок 410.
00:06:18
Configuring Dynamic Routes & Using Route Parameters
-
Урок 411.
00:01:25
Onwards to the Main Project: The Foodies App
-
Урок 412.
00:02:04
Exercise: Your Task
-
Урок 413.
00:08:20
Exercise: Solution
-
Урок 414.
00:03:51
Revisiting The Concept Of Layouts
-
Урок 415.
00:05:59
Adding a Custom Component To A Layout
-
Урок 416.
00:06:01
Styling NextJS Project: Your Options & Using CSS Modules
-
Урок 417.
00:04:58
Optimizing Images with the NextJS Image Component
-
Урок 418.
00:03:49
Using More Custom Components
-
Урок 419.
00:04:19
Populating The Starting Page Content
-
Урок 420.
00:03:26
Preparing an Image Slideshow
-
Урок 421.
00:08:16
React Server Components vs Client Components - When To Use What
-
Урок 422.
00:11:08
Using Client Components Efficiently
-
Урок 423.
00:10:32
Outputting Meals Data & Images With Unknown Dimensions
-
Урок 424.
00:03:12
Setting Up A SQLite Database
-
Урок 425.
00:07:18
Fetching Data By Leveraging NextJS & Fullstack Capabilities
-
Урок 426.
00:04:01
Adding A Loading Page
-
Урок 427.
00:05:55
Using Suspense & Streamed Responses For Granular Loading State Management
-
Урок 428.
00:05:23
Handling Errors
-
Урок 429.
00:01:58
Handling "Not Found" States
-
Урок 430.
00:11:05
Loading & Rendering Meal Details via Dynamic Routes & Route Parameters
-
Урок 431.
00:02:04
Throwing Not Found Errors For Individual Meals
-
Урок 432.
00:01:54
Getting Started with the "Share Meal" Form
-
Урок 433.
00:08:29
Getting Started with a Custom Image Picker Input Component
-
Урок 434.
00:06:01
Adding an Image Preview to the Picker
-
Урок 435.
00:09:03
Introducing & Using Server Actions for Handling Form Submissions
-
Урок 436.
00:03:46
Storing Server Actions in Separate Files
-
Урок 437.
00:03:21
Creating a Slug & Sanitizing User Input for XSS Protection
-
Урок 438.
00:12:57
Storing Uploaded Images & Storing Data in the Database
-
Урок 439.
00:05:31
Managing the Form Submission Status with useFormStatus
-
Урок 440.
00:05:55
Adding Server-Side Input Validation
-
Урок 441.
00:08:06
Working with Server Action Responses & useFormState
-
Урок 442.
00:06:07
Building For Production & Understanding NextJS Caching
-
Урок 443.
00:03:58
Triggering Cache Revalidations
-
Урок 444.
00:02:14
Don't Store Files Locally On The Filesystem!
-
Урок 445.
00:03:48
Adding Static Metadata
-
Урок 446.
00:02:21
Adding Dynamic Metadata
-
Урок 447.
00:04:26
Module Summary
-
Урок 448.
00:02:56
About the NextJS Pages Router
-
Урок 449.
00:02:08
Creating a NextJS Project
-
Урок 450.
00:02:53
Analyzing the Created Project
-
Урок 451.
00:06:06
Adding First Pages
-
Урок 452.
00:03:48
Adding Nested Paths & Pages (Nested Routes)
-
Урок 453.
00:03:37
Creating Dynamic Pages (with Parameters)
-
Урок 454.
00:04:08
Extracting Dynamic Parameter Values
-
Урок 455.
00:07:14
Linking Between Pages
-
Урок 456.
00:03:33
Onwards to a bigger Project!
-
Урок 457.
00:03:43
Preparing the Project Pages
-
Урок 458.
00:05:04
Outputting a List of Meetups
-
Урок 459.
00:03:56
Adding the New Meetup Form
-
Урок 460.
00:06:18
The "_app.js" File & Layout Wrapper
-
Урок 461.
00:03:48
Using Programmatic (Imperative) Navigation
-
Урок 462.
00:10:01
Adding Custom Components & CSS Modules
-
Урок 463.
00:05:53
How Pre-rendering Works & Which Problem We Face
-
Урок 464.
00:08:57
Data Fetching for Static Pages
-
Урок 465.
00:05:45
More on Static Site Generation (SSG)
-
Урок 466.
00:06:28
Exploring Server-side Rendering (SSR) with "getServerSideProps"
-
Урок 467.
00:05:15
Working with Params for SSG Data Fetching
-
Урок 468.
00:07:17
Preparing Paths with "getStaticPaths" & Working With Fallback Pages
-
Урок 469.
00:06:21
Introducing API Routes
-
Урок 470.
00:09:33
Working with MongoDB
-
Урок 471.
00:06:50
Sending Http Requests To Our API Routes
-
Урок 472.
00:07:11
Getting Data From The Database
-
Урок 473.
00:09:42
Getting Meetup Details Data & Preparing Pages
-
Урок 474.
00:09:20
Adding "head" Metadata
-
Урок 475.
00:12:27
Deploying Next.js Projects
-
Урок 476.
00:04:14
Using Fallback Pages & Re-deploying
-
Урок 477.
00:02:16
Summary
-
Урок 478.
00:01:49
Module Introduction
-
Урок 479.
00:04:15
Why We Need A Special Project Setup
-
Урок 480.
00:07:17
Understanding React Server Components
-
Урок 481.
00:05:47
Changing Server to Client Components
-
Урок 482.
00:05:53
Combining Server and Client Components
-
Урок 483.
00:03:40
Fetching Data with RSCs
-
Урок 484.
00:07:07
Submitting Data with Server Actions
-
Урок 485.
00:07:20
Using the use() Hook for Promises & Data Fetching
-
Урок 486.
00:05:32
The use() Hook In Action
-
Урок 487.
00:03:49
Handling Errors
-
Урок 488.
00:01:03
Theory Wrap Up
-
Урок 489.
00:03:06
Module Introduction
-
Урок 490.
00:01:43
Project Setup & Overview
-
Урок 491.
00:07:42
Animating with CSS Transitions
-
Урок 492.
00:05:39
Animating with CSS Animations
-
Урок 493.
00:03:49
Introducing Framer Motion
-
Урок 494.
00:08:30
Framer Motion Basics & Fundamentals
-
Урок 495.
00:04:14
Animating Between Conditional Values
-
Урок 496.
00:04:29
Adding Entry Animations
-
Урок 497.
00:03:52
Animating Element Disappearances / Removal
-
Урок 498.
00:04:14
Making Elements "Pop" With Hover Animations
-
Урок 499.
00:03:29
Reusing Animation States
-
Урок 500.
00:07:47
Nested Animations & Variants
-
Урок 501.
00:04:30
Animating Staggered Lists
-
Урок 502.
00:04:05
Animating Colors & Working with Keyframes
-
Урок 503.
00:07:29
Imperative Animations
-
Урок 504.
00:03:35
Animating Layout Changes
-
Урок 505.
00:10:06
Orchestrating Multi-Element Animations
-
Урок 506.
00:03:56
Combining Animations With Layout Animations
-
Урок 507.
00:04:16
Animating Shared Elements
-
Урок 508.
00:04:53
Re-triggering Animations via Keys
-
Урок 509.
00:15:45
Scroll-based Animations
-
Урок 510.
00:00:56
Module Introduction
-
Урок 511.
00:00:51
Project Overview
-
Урок 512.
00:11:05
Introducing Compound Components
-
Урок 513.
00:10:58
Managing Multi-Component State with the Context API
-
Урок 514.
00:06:30
Grouping Compound Components (
-
Урок 515.
00:08:37
Adding Extra Components For Reusability & Configurability
-
Урок 516.
00:06:07
Sharing Cross-Component State When Working With Compound Components
-
Урок 517.
00:06:15
Introducing & Using Render Props
-
Урок 518.
00:04:19
Adding Search To A React App
-
Урок 519.
00:04:19
Implementing a Search Functionality With Help Of Render Props
-
Урок 520.
00:02:43
Handling Keys Dynamically
-
Урок 521.
00:07:11
Working with Debouncing
-
Урок 522.
00:01:24
Module Introduction
-
Урок 523.
00:03:24
What & Why?
-
Урок 524.
00:04:05
Understanding Different Kinds Of Tests
-
Урок 525.
00:01:30
What To Test & How To Test
-
Урок 526.
00:02:40
Understanding the Technical Setup & Involved Tools
-
Урок 527.
00:07:17
Running a First Test
-
Урок 528.
00:10:15
Writing Our First Test
-
Урок 529.
00:02:15
Grouping Tests Together With Test Suites
-
Урок 530.
00:14:01
Testing User Interaction & State
-
Урок 531.
00:03:20
Testing Connected Components
-
Урок 532.
00:09:12
Testing Asynchronous Code
-
Урок 533.
00:08:31
Working With Mocks
-
Урок 534.
00:03:48
Summary & Further Resources
-
Урок 535.
00:01:27
Module Introduction
-
Урок 536.
00:06:35
What & Why?
-
Урок 537.
00:06:39
Installing & Using TypeScript
-
Урок 538.
00:03:56
Exploring the Base Types
-
Урок 539.
00:05:34
Working with Array & Object Types
-
Урок 540.
00:02:48
Understanding Type Inference
-
Урок 541.
00:02:49
Using Union Types
-
Урок 542.
00:02:43
Understanding Type Aliases
-
Урок 543.
00:05:20
Functions & Function Types
-
Урок 544.
00:08:02
Diving Into Generics
-
Урок 545.
00:08:35
Creating a React + TypeScript Project
-
Урок 546.
00:05:42
Working with Components & TypeScript
-
Урок 547.
00:14:21
Working with Props & TypeScript
-
Урок 548.
00:09:10
Adding a Data Model
-
Урок 549.
00:07:03
Time to Practice: Exercise Time!
-
Урок 550.
00:05:22
Form Submissions In TypeScript Projects
-
Урок 551.
00:10:57
Working with refs & useRef
-
Урок 552.
00:07:27
Working with "Function Props"
-
Урок 553.
00:05:14
Managing State & TypeScript
-
Урок 554.
00:02:20
Adding Styling
-
Урок 555.
00:09:28
Time to Practice: Removing a Todo
-
Урок 556.
00:13:56
The Context API & TypeScript
-
Урок 557.
00:02:19
Summary
-
Урок 558.
00:05:47
Bonus: Exploring tsconfig.json
-
Урок 559.
00:02:11
Module Introduction
-
Урок 560.
00:04:57
What Are React Hooks?
-
Урок 561.
00:04:52
The Starting Project
-
Урок 562.
00:09:21
Getting Started with useState()
-
Урок 563.
00:11:55
More on useState() & State Updating
-
Урок 564.
00:02:35
Array Destructuring
-
Урок 565.
00:03:48
Multiple States
-
Урок 566.
00:02:22
Rules of Hooks
-
Урок 567.
00:07:57
Passing State Data Across Components
-
Урок 568.
00:01:04
Time to Practice: Hooks Basics - Problem
-
Урок 569.
00:02:56
Time to Practice: Hooks Basics - Solution
-
Урок 570.
00:07:17
Sending Http Requests
-
Урок 571.
00:08:07
useEffect() & Loading Data
-
Урок 572.
00:02:22
Understanding useEffect() Dependencies
-
Урок 573.
00:09:38
More on useEffect()
-
Урок 574.
00:05:29
What's useCallback()?
-
Урок 575.
00:05:22
Working with Refs & useRef()
-
Урок 576.
00:03:22
Cleaning Up with useEffect()
-
Урок 577.
00:02:30
Deleting Ingredients
-
Урок 578.
00:08:49
Loading Errors & State Batching
-
Урок 579.
00:09:44
Understanding useReducer()
-
Урок 580.
00:10:41
Using useReducer() for the Http State
-
Урок 581.
00:08:28
Working with useContext()
-
Урок 582.
00:10:31
Performance Optimizations with useMemo()
-
Урок 583.
00:13:46
Getting Started with Custom Hooks
-
Урок 584.
00:14:59
Sharing Data Between Custom Hooks & Components
-
Урок 585.
00:08:12
Using the Custom Hook
-
Урок 586.
00:03:06
Wrap Up
-
Урок 587.
00:01:09
Module Introduction
-
Урок 588.
00:05:38
What Is React & Why Would You Use It?
-
Урок 589.
00:02:10
React Projects - Requirements
-
Урок 590.
00:03:28
Creating React Projects
-
Урок 591.
00:03:29
Our Starting Project
-
Урок 592.
00:07:47
Understanding How React Works
-
Урок 593.
00:11:16
Building A First Custom Component
-
Урок 594.
00:05:04
Outputting Dynamic Values
-
Урок 595.
00:06:01
Reusing Components
-
Урок 596.
00:06:16
Passing Data to Components with Props
-
Урок 597.
00:10:08
CSS Styling & CSS Modules
-
Урок 598.
00:06:32
Exercise & Another Component
-
Урок 599.
00:03:47
Preparing the App For State Management
-
Урок 600.
00:07:53
Adding Event Listeners
-
Урок 601.
00:10:01
Working with State
-
Урок 602.
00:09:09
Lifting State Up
-
Урок 603.
00:07:22
The Special "children" Prop
-
Урок 604.
00:09:00
State & Conditional Content
-
Урок 605.
00:07:52
Adding a Shared Header & More State Management
-
Урок 606.
00:03:35
Adding Form Buttons
-
Урок 607.
00:06:19
Handling Form Submission
-
Урок 608.
00:05:31
Updating State Based On Previous State
-
Урок 609.
00:06:40
Outputting List Data
-
Урок 610.
00:06:11
Adding a Backend to the React SPA
-
Урок 611.
00:04:13
Sending a POST HTTP Request
-
Урок 612.
00:09:07
Handling Side Effects with useEffect()
-
Урок 613.
00:04:24
Handle Loading State
-
Урок 614.
00:03:56
Understanding & Adding Routing
-
Урок 615.
00:05:37
Adding Routes
-
Урок 616.
00:04:09
Working with Layout Routes
-
Урок 617.
00:05:36
Refactoring Route Components & More Nesting
-
Урок 618.
00:08:10
Linking & Navigating
-
Урок 619.
00:09:08
Data Fetching via loader()s
-
Урок 620.
00:11:09
Submitting Data with action()s
-
Урок 621.
00:08:42
Dynamic Routes
-
Урок 622.
00:01:26
Module Summary
-
Урок 623.
00:01:11
Roundup
In the video the routing is done via app folder (the new approach) while in repo it is pages folder (old). In general the project structure and code differs from the video.
We also updated it in the course page.
Thanks for notify us about it!
Updated ~the first half of the course (re-recorded lectures).
Improved explanations & demo projects. Course now covers even more key concepts & best practices.
The last update on udemy is on December 2021.
thanks!
https://youtu.be/mUk6PlLaWk0
thanks