Урок 1. 00:02:58
Course Roadmap and Projects
Урок 2. 00:18:54
Building Our First React App!
Урок 3. 00:05:25
Watch Before You Start!
Урок 4. 00:03:35
Downloading Course Material
Урок 5. 00:00:56
Introduction to Part 1
Урок 6. 00:00:40
Section Overview
Урок 7. 00:10:28
Why Do Front-End Frameworks Exist?
Урок 8. 00:07:09
React vs. Vanilla JavaScript
Урок 9. 00:09:18
What is React?
Урок 10. 00:08:48
Setting Up Our Development Environment
Урок 11. 00:14:50
Pure React
Урок 12. 00:03:17
A Quick Look at React's Official Documentation
Урок 13. 00:07:42
Setting Up a New React Project: The Options
Урок 14. 00:12:49
Setting Up a Project With Create-React-App
Урок 15. 00:00:57
Section Overview
Урок 16. 00:10:59
Destructuring Objects and Arrays
Урок 17. 00:09:54
Rest/Spread Operator
Урок 18. 00:04:51
Template Literals
Урок 19. 00:05:50
Ternaries Instead of if/else Statements
Урок 20. 00:05:00
Arrow Functions
Урок 21. 00:10:33
Short-Circuiting And Logical Operators: &&, ||, ??
Урок 22. 00:06:31
Optional Chaining
Урок 23. 00:08:36
The Array map Method
Урок 24. 00:08:37
The Array filter Method
Урок 25. 00:07:22
The Array reduce Method
Урок 26. 00:06:39
The Array sort Method
Урок 27. 00:11:07
Working With Immutable Arrays
Урок 28. 00:08:12
Asynchronous JavaScript: Promises
Урок 29. 00:07:31
Asynchronous JavaScript: Async/Await
Урок 30. 00:00:55
Section Overview
Урок 31. 00:07:26
Rendering the Root Component and Strict Mode
Урок 32. 00:09:47
Before We Start Coding: Debugging
Урок 33. 00:04:35
Components as Building Blocks
Урок 34. 00:09:41
Creating And Reusing a Component
Урок 35. 00:06:26
What is JSX?
Урок 36. 00:08:08
Creating More Components
Урок 37. 00:04:27
JavaScript Logic in Components
Урок 38. 00:05:58
Separation of Concerns
Урок 39. 00:12:18
Styling React Applications
Урок 40. 00:09:09
Passing and Receiving Props
Урок 41. 00:07:10
Props, Immutability, and One-Way Data Flow
Урок 42. 00:17:26
CHALLENGE #1: Profile Card (v1)
Урок 43. 00:03:38
The Rules of JSX
Урок 44. 00:11:25
Rendering Lists
Урок 45. 00:09:17
Conditional Rendering With &&
Урок 46. 00:04:46
Conditional Rendering With Ternaries
Урок 47. 00:05:04
Conditional Rendering With Multiple Returns
Урок 48. 00:04:33
Extracting JSX Into a New Component
Урок 49. 00:04:53
Destructuring Props
Урок 50. 00:05:37
React Fragments
Урок 51. 00:08:01
Setting Classes and Text Conditionally
Урок 52. 00:05:34
Section Summary
Урок 53. 00:08:16
CHALLENGE #2: Profile Card (v2)
Урок 54. 00:01:03
Section Overview
Урок 55. 00:14:49
Let's Build a Steps Component
Урок 56. 00:07:22
Handling Events the React Way
Урок 57. 00:06:09
What is State in React?
Урок 58. 00:09:08
Creating a State Variable With useState
Урок 59. 00:05:18
Don't Set State Manually!
Урок 60. 00:04:52
The Mechanics of State
Урок 61. 00:08:37
Adding Another Piece of State
Урок 62. 00:06:10
React Developer Tools
Урок 63. 00:05:17
Updating State Based on Current State
Урок 64. 00:06:34
More Thoughts About State + State Guidelines
Урок 65. 00:06:35
A Vanilla JavaScript Implementation
Урок 66. 00:13:10
CHALLENGE #1: Date Counter (v1)
Урок 67. 00:04:09
Starting a New Project: The "Far Away" Travel List
Урок 68. 00:08:55
Building the Layout
Урок 69. 00:08:43
Rendering the Items List
Урок 70. 00:11:56
Building a Form and Handling Submissions
Урок 71. 00:18:27
Controlled Elements
Урок 72. 00:03:31
State vs. Props
Урок 73. 00:13:57
EXERCISE #1: Flashcards
Урок 74. 00:10:32
CHALLENGE #2: Date Counter (v2)
Урок 75. 00:00:59
Section Overview
Урок 76. 00:05:00
What is "Thinking in React"?
Урок 77. 00:09:25
Fundamentals of State Management
Урок 78. 00:14:42
Thinking About State and Lifting State Up
Урок 79. 00:06:26
Reviewing "Lifting Up State"
Урок 80. 00:08:15
Deleting an Item: More Child-to-Parent Communication!
Урок 81. 00:07:44
Updating an Item: Complex Immutable Data Operation
Урок 82. 00:03:04
Derived State
Урок 83. 00:10:44
Calculating Statistics as Derived State
Урок 84. 00:10:49
Sorting Items
Урок 85. 00:05:04
Clearing the List
Урок 86. 00:08:54
Moving Components Into Separate Files
Урок 87. 00:14:16
EXERCISE #1: Accordion Component (v1)
Урок 88. 00:16:11
The "children" Prop: Making a Reusable Button
Урок 89. 00:08:14
More Reusability With the "children" Prop
Урок 90. 00:10:16
EXERCISE #2: Accordion Component (v2)
Урок 91. 00:22:10
CHALLENGE #1: Tip Calculator
Урок 92. 00:00:56
Section Overview
Урок 93. 00:03:53
Project Setup
Урок 94. 00:12:03
Building the Static App: List of Friends
Урок 95. 00:09:28
Building the Static App: Forms
Урок 96. 00:06:35
Displaying the New Friend Form
Урок 97. 00:18:39
Adding a New Friend
Урок 98. 00:15:03
Selecting a Friend
Урок 99. 00:09:54
Creating Controlled Elements
Урок 100. 00:12:49
Splitting a Bill
Урок 101. 00:01:16
Introduction to Part 2
Урок 102. 00:01:01
Section Overview
Урок 103. 00:04:11
Setting Up the "usePopcorn" Project
Урок 104. 00:12:36
How to Split a UI Into Components
Урок 105. 00:23:59
Splitting Components in Practice
Урок 106. 00:02:43
Component Categories
Урок 107. 00:07:32
Prop Drilling
Урок 108. 00:04:52
Component Composition
Урок 109. 00:08:50
Fixing Prop Drilling With Composition (And Building a Layout)
Урок 110. 00:06:31
Using Composition to Make a Reusable Box
Урок 111. 00:04:45
Passing Elements as Props (Alternative to children)
Урок 112. 00:11:23
Building a Reusable Star Rating Component
Урок 113. 00:13:05
Creating the Stars
Урок 114. 00:07:44
Handling Hover Events
Урок 115. 00:04:29
Props as a Component API
Урок 116. 00:19:28
Improving Reusability With Props
Урок 117. 00:07:25
PropTypes
Урок 118. 00:18:21
CHALLENGE #1: Text Expander Component
Урок 119. 00:01:56
Section Overview
Урок 120. 00:11:12
Project Setup and Walkthrough
Урок 121. 00:05:10
Components, Instances, and Elements
Урок 122. 00:07:54
Instances and Elements in Practice
Урок 123. 00:06:56
How Rendering Works: Overview
Урок 124. 00:18:29
How Rendering Works: The Render Phase
Урок 125. 00:11:28
How Rendering Works: The Commit Phase
Урок 126. 00:05:53
How Diffing Works
Урок 127. 00:05:14
Diffing Rules in Practice
Урок 128. 00:07:43
The Key Prop
Урок 129. 00:04:03
Resetting State With the Key Prop
Урок 130. 00:04:08
Using the Key Prop to Fix Our Eat-'N-Split App
Урок 131. 00:09:25
Rules for Render Logic: Pure Components
Урок 132. 00:09:12
State Update Batching
Урок 133. 00:15:44
State Update Batching in Practice
Урок 134. 00:13:43
How Events Work in React
Урок 135. 00:09:53
Libraries vs. Frameworks & The React Ecosystem
Урок 136. 00:10:28
Section Summary: Practical Takeaways
Урок 137. 00:00:59
Section Overview
Урок 138. 00:04:32
The Component Lifecycle
Урок 139. 00:09:49
How NOT to Fetch Data in React
Урок 140. 00:04:41
useEffect to the Rescue
Урок 141. 00:06:24
A First Look at Effects
Урок 142. 00:05:41
Using an async Function
Урок 143. 00:03:48
Adding a Loading State
Урок 144. 00:13:03
Handling Errors
Урок 145. 00:12:18
The useEffect Dependency Array
Урок 146. 00:15:09
Synchronizing Queries With Movie Data
Урок 147. 00:13:20
Selecting a Movie
Урок 148. 00:17:44
Loading Movie Details
Урок 149. 00:26:12
Adding a Watched Movie
Урок 150. 00:08:45
Adding a New Effect: Changing Page Title
Урок 151. 00:04:22
The useEffect Cleanup Function
Урок 152. 00:05:23
Cleaning Up the Title
Урок 153. 00:10:17
Cleaning Up Data Fetching
Урок 154. 00:14:07
One More Effect: Listening to a Keypress
Урок 155. 00:16:44
CHALLENGE #1: Currency Converter
Урок 156. 00:00:58
Section Overview
Урок 157. 00:10:56
React Hooks and Their Rules
Урок 158. 00:08:37
The Rules of Hooks in Practice
Урок 159. 00:12:31
More Details of useState
Урок 160. 00:13:31
Initializing State With a Callback (Lazy Initial State)
Урок 161. 00:03:15
useState Summary
Урок 162. 00:03:39
How NOT to Select DOM Elements in React
Урок 163. 00:05:37
Introducing Another Hook: useRef
Урок 164. 00:10:10
Refs to Select DOM Elements
Урок 165. 00:10:16
Refs to Persist Data Between Renders
Урок 166. 00:04:23
What are Custom Hooks? When to Create One?
Урок 167. 00:13:03
Creating our First Custom Hook: useMovies
Урок 168. 00:09:07
Creating useLocalStorageState
Урок 169. 00:08:20
Creating useKey
Урок 170. 00:07:28
CHALLENGE #1: useGeolocate
Урок 171. 00:01:17
Section Overview
Урок 172. 00:09:33
Our First Class Component
Урок 173. 00:10:26
Working With Event Handlers
Урок 174. 00:05:38
Class Components vs. Function Components
Урок 175. 00:07:46
Starting the "Classy Weather" App
Урок 176. 00:09:40
Fetching Weather Data
Урок 177. 00:14:11
Displaying the Weather
Урок 178. 00:04:06
Removing Boilerplate Code With Class Fields
Урок 179. 00:04:20
Child to Parent Communication
Урок 180. 00:15:37
Lifecycle Methods
Урок 181. 00:01:12
Introduction to Part 3
Урок 182. 00:01:04
Section Overview
Урок 183. 00:18:00
Yet Another Hook: useReducer
Урок 184. 00:12:24
Managing Related Pieces of State
Урок 185. 00:14:15
Managing State With useReducer
Урок 186. 00:07:58
The "React Quiz" App
Урок 187. 00:18:32
Loading Questions from a Fake API
Урок 188. 00:09:06
Handling Loading, Error, and Ready Status
Урок 189. 00:04:55
Starting a New Quiz
Урок 190. 00:07:46
Displaying Questions
Урок 191. 00:16:43
Handling New Answers
Урок 192. 00:06:23
Moving to the Next Question
Урок 193. 00:08:58
Displaying Progress
Урок 194. 00:15:08
Finishing a Quiz
Урок 195. 00:07:06
Restarting a Quiz
Урок 196. 00:20:57
Setting Up a Timer With useEffect
Урок 197. 00:05:55
Section Summary: useState vs. useReducer
Урок 198. 00:19:51
CHALLENGE #1: Creating a Bank Account With useReducer
Урок 199. 00:01:02
Section Overview
Урок 200. 00:15:42
Creating Our First App With Vite: "WorldWise"
Урок 201. 00:06:41
Routing and Single-Page Applications (SPAs)
Урок 202. 00:12:16
Implementing Main Pages and Routes
Урок 203. 00:09:58
Linking Between Routes With <Link /> and <NavLink />
Урок 204. 00:05:51
Styling Options For React Applications
Урок 205. 00:16:31
Using CSS Modules
Урок 206. 00:17:00
Building the Pages
Урок 207. 00:08:45
Building the App Layout
Урок 208. 00:13:26
Nested Routes and Index Route
Урок 209. 00:18:43
Implementing the Cities List
Урок 210. 00:11:08
Implementing the Countries List
Урок 211. 00:05:32
Storing State in the URL
Урок 212. 00:10:29
Dynamic Routes With URL Parameters
Урок 213. 00:10:35
Reading and Setting a Query String
Урок 214. 00:11:51
Programmatic Navigation with useNavigate
Урок 215. 00:04:13
Programmatic Navigation with <Navigate />
Урок 216. 00:01:00
Section Overview
Урок 217. 00:04:23
CHALLENGE #1: Understand "The Atomic Blog" App
Урок 218. 00:05:17
What is the Context API?
Урок 219. 00:09:28
Creating and Providing a Context
Урок 220. 00:10:54
Consuming the Context
Урок 221. 00:16:16
Advanced Pattern: A Custom Provider and Hook
Урок 222. 00:11:39
Thinking In React: Advanced State Management
Урок 223. 00:08:33
Back to "WorldWise": Creating a CitiesContext
Урок 224. 00:04:27
Consuming the CitiesContext
Урок 225. 00:17:59
Finishing the City View
Урок 226. 00:09:26
Including a Map With the Leaflet Library
Урок 227. 00:05:59
Displaying City Markers on Map
Урок 228. 00:13:39
Interacting With the Map
Урок 229. 00:11:34
Setting Map Position With Geolocation
Урок 230. 00:17:43
Fetching City Data in the Form
Урок 231. 00:23:29
Creating a New City
Урок 232. 00:05:38
Deleting a City
Урок 233. 00:22:39
Advanced State Management System: Context + useReducer
Урок 234. 00:11:04
Adding Fake Authentication: Setting Up Context
Урок 235. 00:16:25
Adding Fake Authentication: Implementing "Login"
Урок 236. 00:11:22
Adding Fake Authentication: Protecting a Route
Урок 237. 00:08:23
CHALLENGE #2: Refactoring "React Quiz" to Context API
Урок 238. 00:01:04
Section Overview
Урок 239. 00:06:07
Performance Optimization and Wasted Renders
Урок 240. 00:08:22
The Profiler Developer Tool
Урок 241. 00:11:50
A Surprising Optimization Trick With children
Урок 242. 00:05:30
Understanding memo
Урок 243. 00:13:18
memo in Practice
Урок 244. 00:06:40
Understanding useMemo and useCallback
Урок 245. 00:08:43
useMemo in Practice
Урок 246. 00:10:10
useCallback in Practice
Урок 247. 00:14:49
Optimizing Context Re-Renders
Урок 248. 00:12:38
Back to The "WorldWise" App
Урок 249. 00:15:53
Optimizing Bundle Size With Code Splitting
Урок 250. 00:03:00
Don't Optimize Prematurely!
Урок 251. 00:10:02
useEffect Rules and Best Practices
Урок 252. 00:12:16
CHALLENGE #1: Fix Performance Issues in "Workout Timer"
Урок 253. 00:11:56
Setting State Based on Other State Updates
Урок 254. 00:15:05
Using Helper Functions In Effects
Урок 255. 00:09:53
Closures in Effects
Урок 256. 00:01:08
Section Overview
Урок 257. 00:12:15
Introduction to Redux
Урок 258. 00:10:48
Creating a Reducer: Bank Account
Урок 259. 00:09:47
Creating a Redux Store
Урок 260. 00:06:29
Working With Action Creators
Урок 261. 00:12:31
Adding More State: Customer
Урок 262. 00:11:48
Professional Redux File Structure: State Slices
Урок 263. 00:05:47
Back to React! Connecting our Redux App With React
Урок 264. 00:17:22
Dispatching Actions from Our React App
Урок 265. 00:04:51
The Legacy Way of Connecting Components to Redux
Урок 266. 00:04:29
Redux Middleware and Thunks
Урок 267. 00:17:51
Making an API Call With Redux Thunks
Урок 268. 00:10:22
The Redux DevTools
Урок 269. 00:03:41
What is Redux Toolkit (RTK)?
Урок 270. 00:04:38
Creating the Store With RTK
Урок 271. 00:21:45
Creating the Account Slice
Урок 272. 00:05:03
Back to Thunks
Урок 273. 00:09:15
Creating the Customer Slice
Урок 274. 00:07:44
Redux vs. Context API
Урок 275. 00:01:28
Introduction to Part 4
Урок 276. 00:00:52
Section Overview
Урок 277. 00:08:14
Setting Up a New Project: "Fast React Pizza Co."
Урок 278. 00:21:25
Application Planning
Урок 279. 00:08:21
Setting Up a Professional File Structure
Урок 280. 00:10:31
A New Way Of Implementing Routes
Урок 281. 00:11:19
Building the App Layout
Урок 282. 00:11:51
Fetching Data With React Router "Loaders": Pizza Menu
Урок 283. 00:06:01
Displaying a Loading Indicator
Урок 284. 00:06:25
Handling Errors With Error Elements
Урок 285. 00:12:41
Fetching Orders
Урок 286. 00:19:05
Writing Data With React Router "Actions"
Урок 287. 00:10:28
Error Handling in Form Actions
Урок 288. 00:01:00
Section Overview
Урок 289. 00:07:57
What is Tailwind CSS?
Урок 290. 00:12:04
Setting Up Tailwind CSS
Урок 291. 00:09:00
Working With Color
Урок 292. 00:10:01
Styling Text
Урок 293. 00:11:18
The Box Model: Spacing, Borders, and Display
Урок 294. 00:10:50
Responsive Design
Урок 295. 00:06:32
Using Flexbox
Урок 296. 00:12:21
Using CSS Grid
Урок 297. 00:12:13
Styling Buttons: Element States and Transitions
Урок 298. 00:10:23
Styling Form Elements
Урок 299. 00:04:29
Reusing Styles With @apply
Урок 300. 00:12:28
Reusing Styles With React Components
Урок 301. 00:06:31
Absolute Positioning, z-index, and More
Урок 302. 00:10:54
Configuring Tailwind: Custom Font Family
Урок 303. 00:18:28
Styling the Menu
Урок 304. 00:11:47
Styling the Cart
Урок 305. 00:13:22
Styling the Order Form
Урок 306. 00:13:55
Styling the Order Overview
Урок 307. 00:00:40
Section Overview
Урок 308. 00:13:25
Modeling the "User" State With Redux Toolkit
Урок 309. 00:10:38
Reading and Updating the User State
Урок 310. 00:14:21
Modeling the "Cart" State
Урок 311. 00:07:07
Adding Menu Items to the Cart
Урок 312. 00:09:00
Building the Cart Overview With Redux Selectors
Урок 313. 00:07:06
Building the Cart Page
Урок 314. 00:14:45
Deleting Cart Items
Урок 315. 00:13:33
Updating Cart Quantities
Урок 316. 00:14:32
Using the Cart for New Orders
Урок 317. 00:16:05
Redux Thunks With createAsyncThunk
Урок 318. 00:16:05
Integrating Geolocation
Урок 319. 00:12:45
Fetching Data Without Navigation: useFetcher
Урок 320. 00:14:38
Updating Data Without Navigation
Урок 321. 00:00:55
Section Overview
Урок 322. 00:18:30
Application Planning
Урок 323. 00:08:12
Setting Up the Project: "The Wild Oasis"
Урок 324. 00:12:23
Introduction to Styled Components
Урок 325. 00:14:37
Global Styles With Styled Components
Урок 326. 00:10:26
Styled Component Props and the "css" Function
Урок 327. 00:11:04
Building More Reusable Styled Components
Урок 328. 00:06:28
Setting Up Pages and Routes
Урок 329. 00:14:22
Building the App Layout
Урок 330. 00:13:10
Building the Sidebar and Main Navigation
Урок 331. 00:00:47
Section Overview
Урок 332. 00:02:25
What is Supabase?
Урок 333. 00:05:28
Creating a New Database
Урок 334. 00:05:35
Modeling Application State
Урок 335. 00:09:32
Creating Tables
Урок 336. 00:08:30
Relationships Between Tables
Урок 337. 00:06:19
Adding Security Policies (RLS)
Урок 338. 00:08:46
Connecting Supabase With Our React App
Урок 339. 00:04:40
Setting Up Storage Buckets
Урок 340. 00:00:47
Section Overview
Урок 341. 00:06:21
What is React Query?
Урок 342. 00:07:20
Setting Up React Query
Урок 343. 00:21:42
Fetching Cabin Data
Урок 344. 00:17:22
Mutations: Deleting a Cabin
Урок 345. 00:08:42
Displaying Toasts (Notifications)
Урок 346. 00:11:18
Introducing Another Library: React Hook Form
Урок 347. 00:12:14
Creating a New Cabin
Урок 348. 00:22:43
Handling Form Errors
Урок 349. 00:14:42
Uploading Images to Supabase
Урок 350. 00:30:41
Editing a Cabin
Урок 351. 00:17:27
Abstracting React Query Into Custom Hooks
Урок 352. 00:06:50
Duplicating Cabins
Урок 353. 00:08:48
Fetching Applications Settings
Урок 354. 00:11:29
Updating Application Settings
Урок 355. 00:01:14
Section Overview
Урок 356. 00:05:45
An Overview of Reusability in React
Урок 357. 00:06:20
Setting Up an Example
Урок 358. 00:07:43
The Render Props Pattern
Урок 359. 00:08:07
A Look at Higher-Order Components (HOC)
Урок 360. 00:18:18
The Compound Component Pattern
Урок 361. 00:19:55
Building a Modal Window Using a React Portal
Урок 362. 00:21:46
Converting the Modal to a Compound Component
Урок 363. 00:13:38
Detecting a Click Outside the Modal
Урок 364. 00:08:43
Confirming Cabin Deletions
Урок 365. 00:11:46
Building a Reusable Table
Урок 366. 00:04:39
Applying the Render Props Pattern
Урок 367. 00:32:36
Building a Reusable Context Menu
Урок 368. 00:01:18
Section Overview
Урок 369. 00:18:50
Client-Side Filtering: Filtering Cabins
Урок 370. 00:20:26
Client-Side Sorting: Sorting Cabins
Урок 371. 00:18:00
Building the Bookings Table
Урок 372. 00:06:16
Uploading Sample Data
Урок 373. 00:17:11
API-Side Filtering: Filtering Bookings
Урок 374. 00:06:54
API-Side Sorting: Sorting Bookings
Урок 375. 00:15:53
Building a Reusable Pagination Component
Урок 376. 00:10:40
API-Side Pagination: Paginating Bookings
Урок 377. 00:07:59
Prefetching With React Query
Урок 378. 00:15:18
Building the Single Booking Page
Урок 379. 00:28:19
Checking In a Booking
Урок 380. 00:14:05
Adding Optional Breakfast
Урок 381. 00:09:51
Checking Out a Booking (+ Fixing a Small Bug)
Урок 382. 00:13:34
Deleting a Booking
Урок 383. 00:22:07
Authentication: User Login With Supabase
Урок 384. 00:23:25
Authorization: Protecting Routes
Урок 385. 00:09:01
User Logout
Урок 386. 00:05:36
Fixing an Important Bug
Урок 387. 00:11:00
Building the Sign Up Form
Урок 388. 00:15:02
User Sign Up
Урок 389. 00:04:41
Authorization on Supabase: Protecting Database (RLS)
Урок 390. 00:10:19
Building The App Header
Урок 391. 00:28:27
Updating User Data and Password
Урок 392. 00:21:30
Implementing Dark Mode With CSS Variables
Урок 393. 00:04:27
Building the Dashboard Layout
Урок 394. 00:15:22
Computing Recent Bookings and Stays
Урок 395. 00:12:03
Displaying Statistics
Урок 396. 00:22:56
Displaying a Line Chart With the Recharts Library
Урок 397. 00:15:53
Displaying a Pie Chart
Урок 398. 00:20:42
Displaying Stays for Current Day
Урок 399. 00:09:45
Error Boundaries
Урок 400. 00:14:40
Final Touches + Fixing Bugs
Урок 401. 00:01:10
Section Overview
Урок 402. 00:11:21
Deploying to Netlify
Урок 403. 00:16:17
Setting Up a Git and GitHub Repository
Урок 404. 00:05:55
Deploying to Vercel
Урок 405. 00:01:24
Introduction to Part 5
Урок 406. 00:00:47
Section Overview
Урок 407. 00:15:46
An Overview of Server-Side Rendering (SSR)
Урок 408. 00:26:34
Experiment: Manual SSR With React DOM + Node.js
Урок 409. 00:06:34
The Missing Piece: Hydration
Урок 410. 00:15:05
Implementing Hydration
Урок 411. 00:12:04
What is Next.js?
Урок 412. 00:10:12
Setting Up a Next.js Project
Урок 413. 00:09:40
Defining Routes and Pages
Урок 414. 00:09:26
Navigating Between Pages
Урок 415. 00:12:14
Creating a Layout
Урок 416. 00:32:05
What are React Server Components? (RSC – Part 1)
Урок 417. 00:06:37
Fetching Data in a Page
Урок 418. 00:08:03
Adding Interactivity With Client Components
Урок 419. 00:06:30
Displaying a Loading Indicator
Урок 420. 00:18:36
How RSC Works Behind the Scenes (RSC – Part 2)
Урок 421. 00:12:16
RSC vs. SSR: How are They Related? (RSC – Part 3)
Урок 422. 00:00:52
Section Overview
Урок 423. 00:13:10
Project Planning: "The Wild Oasis" Customer Website
Урок 424. 00:11:02
Project Organization
Урок 425. 00:09:25
Styling With Tailwind CSS
Урок 426. 00:10:26
Adding Page Metadata and Favicon
Урок 427. 00:06:25
Loading and Optimizing Fonts
Урок 428. 00:07:03
Improving the Navigation and Root Layout
Урок 429. 00:08:40
Optimizing Images With Next.js <Image /> Component
Урок 430. 00:09:48
Building the Home Page
Урок 431. 00:13:31
Building the About Page With Responsive Images
Урок 432. 00:06:56
Adding Nested Routes and Pages
Урок 433. 00:12:14
Adding a Nested Layout
Урок 434. 00:01:04
Section Overview
Урок 435. 00:11:45
Setting Up Supabase
Урок 436. 00:11:14
Fetching and Displaying Cabin List
Урок 437. 00:07:16
Streaming Route Segments With loading.js File
Урок 438. 00:12:19
What is React Suspense?
Урок 439. 00:10:30
Streaming UI With Suspense: Cabin List
Урок 440. 00:10:26
Dynamic Route Segments: Building the Cabin Page
Урок 441. 00:03:40
Generating Dynamic Metadata
Урок 442. 00:09:04
Error Handling: Setting Up Error Boundaries
Урок 443. 00:05:46
Error Handling: "Not Found" Errors
Урок 444. 00:14:15
Different Types of SSR: Static vs. Dynamic Rendering
Урок 445. 00:04:49
Analyzing Rendering in Our App
Урок 446. 00:08:34
Making Dynamic Pages Static With generateStaticParams
Урок 447. 00:09:13
Static Site Generation (SSG)
Урок 448. 00:06:58
Partial Pre-Rendering
Урок 449. 00:18:29
How Next.js Caches Data
Урок 450. 00:20:40
Experimenting With Caching and ISR
Урок 451. 00:03:47
CHALLENGE #1: Fetching the Number of Cabins
Урок 452. 00:01:14
Section Overview
Урок 453. 00:15:07
Blurring the Boundary Between Server and Client (RSC – Part 4)
Урок 454. 00:08:16
Client Components in Server Components
Урок 455. 00:07:46
Highlighting Current Side Navigation Link
Урок 456. 00:34:29
Sharing State Between Client and Server: The URL
Урок 457. 00:10:41
Advanced: Server Components in Client Components
Урок 458. 00:27:01
Data Fetching Strategies for the Reservation Section
Урок 459. 00:25:48
Using the Context API for State Management
Урок 460. 00:11:36
Creating an API Endpoint With Route Handlers
Урок 461. 00:00:55
Section Overview
Урок 462. 00:21:39
Setting Up NextAuth
Урок 463. 00:14:12
Getting the User Session
Урок 464. 00:04:13
What is Middleware in Next.js?
Урок 465. 00:10:54
Protecting Routes With NextAuth Middleware
Урок 466. 00:12:19
Building a Custom Sign In Page
Урок 467. 00:03:23
Building a Custom Sign Out Button
Урок 468. 00:14:36
Creating a New Guest on First Sign In
Урок 469. 00:01:08
Section Overview
Урок 470. 00:12:02
What are Server Actions?
Урок 471. 00:30:44
Updating the Profile Using a Server Action
Урок 472. 00:05:53
Manual Cache Revalidation
Урок 473. 00:07:56
Displaying a Loading Indicator: The useFormStatus Hook
Урок 474. 00:10:28
Building the Guest's Reservations Page
Урок 475. 00:19:31
Deleting a Reservation
Урок 476. 00:07:28
Another Loading Indicator: The useTransition Hook
Урок 477. 00:30:25
CHALLENGE #1: Updating a Reservation
Урок 478. 00:22:23
Removing Reservations Immediately: The useOptimistic Hook
Урок 479. 00:12:10
Back to the Cabin Page: Finishing the Date Selector
Урок 480. 00:32:29
Creating a New Reservation
Урок 481. 00:00:49
Section Overview
Урок 482. 00:03:25
Setting Up the GitHub Repository
Урок 483. 00:06:19
Deploying to Vercel
Урок 484. 00:08:12
Updating Environment Variables and OAuth Credentials
Урок 485. 00:01:08
Section Overview
Урок 486. 00:08:53
Setting Up Another Project
Урок 487. 00:07:37
Routes, Pages, and Navigation
Урок 488. 00:03:34
Dynamic Routes
Урок 489. 00:06:38
Creating a Layout With a Custom _App
Урок 490. 00:02:29
Creating Pages
Урок 491. 00:06:04
Defining Page Title and Favicon
Урок 492. 00:08:13
Fetching Data With getStaticProps (SSG)
Урок 493. 00:10:51
Fetching Data With getServerSideProps (SSR)
Урок 494. 00:11:57
API Routes
Урок 495. 00:15:42
Handling Form Submissions
Урок 496. 00:03:21
Where to Go from Here
But of course to truly understand how to use all tools in Js, Redux you need to build a project from scratch, not from the tutorials.