Урок 1. 00:01:21
Welcome To The Course!
Урок 2. 00:02:21
What Is NextJS? Why Would You Use It?
Урок 3. 00:02:41
Key Features & Benefits Of NextJS
Урок 4. 00:04:26
Creating a First NextJS App
Урок 5. 00:02:31
NextJS vs "Just React" - Analyzing The NextJS Project
Урок 6. 00:02:22
Editing The First App
Урок 7. 00:02:30
Pages Router vs App Router - One Framework, Two Approaches
Урок 8. 00:03:06
How To Get The Most Out Of This Course
Урок 9. 00:01:09
Module Introduction
Урок 10. 00:05:38
What Is React & Why Would You Use It?
Урок 11. 00:02:10
React Projects - Requirements
Урок 12. 00:03:28
Creating React Projects
Урок 13. 00:03:29
Our Starting Project
Урок 14. 00:07:47
Understanding How React Works
Урок 15. 00:11:16
Building A First Custom Component
Урок 16. 00:05:04
Outputting Dynamic Values
Урок 17. 00:06:01
Reusing Components
Урок 18. 00:06:16
Passing Data to Components with Props
Урок 19. 00:10:08
CSS Styling & CSS Modules
Урок 20. 00:06:32
Exercise & Another Component
Урок 21. 00:03:47
Preparing the App For State Management
Урок 22. 00:07:53
Adding Event Listeners
Урок 23. 00:10:01
Working with State
Урок 24. 00:09:09
Lifting State Up
Урок 25. 00:07:22
The Special "children" Prop
Урок 26. 00:09:00
State & Conditional Content
Урок 27. 00:07:52
Adding a Shared Header & More State Management
Урок 28. 00:03:35
Adding Form Buttons
Урок 29. 00:06:19
Handling Form Submission
Урок 30. 00:05:31
Updating State Based On Previous State
Урок 31. 00:06:40
Outputting List Data
Урок 32. 00:06:11
Adding a Backend to the React SPA
Урок 33. 00:04:13
Sending a POST HTTP Request
Урок 34. 00:09:07
Handling Side Effects with useEffect()
Урок 35. 00:04:24
Handle Loading State
Урок 36. 00:03:56
Understanding & Adding Routing
Урок 37. 00:05:37
Adding Routes
Урок 38. 00:04:09
Working with Layout Routes
Урок 39. 00:05:36
Refactoring Route Components & More Nesting
Урок 40. 00:08:10
Linking & Navigating
Урок 41. 00:09:08
Data Fetching via loader()s
Урок 42. 00:11:09
Submitting Data with action()s
Урок 43. 00:08:42
Dynamic Routes
Урок 44. 00:01:26
Module Summary
Урок 45. 00:01:21
Module Introduction
Урок 46. 00:02:33
Starting Setup
Урок 47. 00:02:46
Understanding File-based Routing & React Server Components
Урок 48. 00:03:07
Adding Another Route via the File System
Урок 49. 00:04:13
Navigating Between Pages - Wrong & Right Solution
Урок 50. 00:03:23
Working with Pages & Layouts
Урок 51. 00:06:32
Reserved File Names, Custom Components & How To Organize A NextJS Project
Урок 52. 00:06:18
Configuring Dynamic Routes & Using Route Parameters
Урок 53. 00:01:25
Onwards to the Main Project: The Foodies App
Урок 54. 00:02:04
Exercise: Your Task
Урок 55. 00:08:20
Exercise: Solution
Урок 56. 00:03:51
Revisiting The Concept Of Layouts
Урок 57. 00:05:59
Adding a Custom Component To A Layout
Урок 58. 00:06:01
Styling NextJS Project: Your Options & Using CSS Modules
Урок 59. 00:04:58
Optimizing Images with the NextJS Image Component
Урок 60. 00:03:49
Using More Custom Components
Урок 61. 00:04:19
Populating The Starting Page Content
Урок 62. 00:03:26
Preparing an Image Slideshow
Урок 63. 00:08:16
React Server Components vs Client Components - When To Use What
Урок 64. 00:11:08
Using Client Components Efficiently
Урок 65. 00:10:32
Outputting Meals Data & Images With Unknown Dimensions
Урок 66. 00:03:12
Setting Up A SQLite Database
Урок 67. 00:07:18
Fetching Data By Leveraging NextJS & Fullstack Capabilities
Урок 68. 00:04:01
Adding A Loading Page
Урок 69. 00:05:55
Using Suspense & Streamed Responses For Granular Loading State Management
Урок 70. 00:05:23
Handling Errors
Урок 71. 00:01:58
Handling "Not Found" States
Урок 72. 00:11:05
Loading & Rendering Meal Details via Dynamic Routes & Route Parameters
Урок 73. 00:02:04
Throwing Not Found Errors For Individual Meals
Урок 74. 00:01:54
Getting Started with the "Share Meal" Form
Урок 75. 00:06:01
Adding an Image Preview to the Picker
Урок 76. 00:08:29
Getting Started with a Custom Image Picker Input Component
Урок 77. 00:09:03
Introducing & Using Server Actions for Handling Form Submissions
Урок 78. 00:03:46
Storing Server Actions in Separate Files
Урок 79. 00:03:21
Creating a Slug & Sanitizing User Input for XSS Protection
Урок 80. 00:12:57
Storing Uploaded Images & Storing Data in the Database
Урок 81. 00:05:31
Managing the Form Submission Status with useFormStatus
Урок 82. 00:05:55
Adding Server-Side Input Validation
Урок 83. 00:08:06
Working with Server Action Responses & useFormState
Урок 84. 00:06:07
Building For Production & Understanding NextJS Caching
Урок 85. 00:03:58
Triggering Cache Revalidations
Урок 86. 00:02:14
Don't Store Files Locally On The Filesystem!
Урок 87. 00:03:48
Adding Static Metadata
Урок 88. 00:02:21
Adding Dynamic Metadata
Урок 89. 00:04:26
Module Summary
Урок 90. 00:01:38
Module Introduction
Урок 91. 00:04:18
Project Setup, Overview & An Exercise!
Урок 92. 00:07:18
Exercise Solution - Part 1
Урок 93. 00:04:57
Exercise Solution - Part 2
Урок 94. 00:09:00
App Styling & Using Dummy Data
Урок 95. 00:04:40
Handling "Not Found" Errors & Showing "Not Found" Pages
Урок 96. 00:06:41
Setting Up & Using Parallel Routes
Урок 97. 00:12:51
Working with Parallel Routes & Nested Routes
Урок 98. 00:06:02
Configuring Catch-All Routes
Урок 99. 00:09:22
Catch-All Fallback Routes & Dealing With Multiple Path Segments
Урок 100. 00:03:39
Throwing (Route-related) Errors
Урок 101. 00:03:03
Handling Errors With Error Pages
Урок 102. 00:10:11
Server vs Client Components
Урок 103. 00:04:57
Nested Routes Inside Dynamic Routes
Урок 104. 00:05:12
Intercepting Navigation & Using Interception Routes
Урок 105. 00:07:43
Combining Parallel & Intercepting Routes
Урок 106. 00:02:43
Navigating Programmatically
Урок 107. 00:06:40
Using & Understanding Route Groups
Урок 108. 00:05:16
Building APIs with Route Handlers
Урок 109. 00:05:41
Using Middleware
Урок 110. 00:00:31
Module Summary
Урок 111. 00:00:57
Module Introduction
Урок 112. 00:02:47
Adding a Backend
Урок 113. 00:08:51
Option 1: Client-side Data Fetching
Урок 114. 00:05:37
Option 2: Server-side Data Fetching
Урок 115. 00:06:15
Why Use A Separate Backend? Fetching Directly From The Source!
Урок 116. 00:04:51
Showing a "Loading" Fallback
Урок 117. 00:13:20
Migrating An Entire Application To A Local Data Source (Database)
Урок 118. 00:11:36
Granular Data Fetching With Suspense
Урок 119. 00:01:12
Module Introduction
Урок 120. 00:05:47
Starting Project & Analyzing Mutation Options
Урок 121. 00:09:20
Setting Up A Form Action
Урок 122. 00:04:17
Creating a Server Action
Урок 123. 00:04:40
Storing Data in Databases
Урок 124. 00:06:05
Providing User Feedback with The useFormStatus Hook
Урок 125. 00:09:58
Validating User Input With Help Of The useFormState Hook
Урок 126. 00:07:41
Adjusting Server Actions for useFormState
Урок 127. 00:03:58
Storing Server Actions In Separate Files
Урок 128. 00:08:14
Uploading & Storing Images
Урок 129. 00:11:01
Alternative Ways of Using, Configuring & Triggering Server Actions
Урок 130. 00:04:46
Revalidating Data To Avoid Caching Problems
Урок 131. 00:11:43
Performing Optimistic Updates With NextJS
Урок 132. 00:06:14
Caching Differences: Development vs Production
Урок 133. 00:01:10
Module Introduction
Урок 134. 00:05:14
Making Sense of NextJS' Caching Types
Урок 135. 00:01:46
Project Setup
Урок 136. 00:05:32
Handling Request Memoization
Урок 137. 00:05:50
Understanding The Data Cache & Cache Settings
Урок 138. 00:05:28
Controlling Data Caching
Урок 139. 00:04:43
Making Sense Of The Full Route Cache
Урок 140. 00:06:04
On-Demand Cache Invalidation with revalidatePath & revalidateTag
Урок 141. 00:07:16
Setting Up Request Memoization For Custom Data Sources
Урок 142. 00:03:45
Setting Up Data Caching For Custom Data Sources
Урок 143. 00:03:33
Invalidating Custom Data Source Data
Урок 144. 00:01:45
Module Summary
Урок 145. 00:03:09
Module Introduction
Урок 146. 00:03:44
Using the NextJS Image Component
Урок 147. 00:05:16
Understanding the NextJS Image Component
Урок 148. 00:04:46
Controlling the Image Size
Урок 149. 00:03:04
Working with Priority Images & More Settings
Урок 150. 00:04:13
Loading Unknown Images
Урок 151. 00:03:04
Configuring CSS For Images With The "fill" Prop
Урок 152. 00:15:52
Using An Image Loader & Cloudinary Resizing
Урок 153. 00:01:05
Page Metadata - An Introduction
Урок 154. 00:02:58
Configuring Static Page Metadata
Урок 155. 00:05:04
Configuring Dynamic Page Metadata
Урок 156. 00:01:39
Understanding Layout Metadata
Урок 157. 00:01:05
Module Introduction
Урок 158. 00:03:27
Project Setup
Урок 159. 00:14:36
User Signup: Extracting & Validating User Input
Урок 160. 00:04:31
Storing Users in a Database - The Wrong Way
Урок 161. 00:02:08
Hashing Passwords & Storing User Data The Right Way
Урок 162. 00:05:02
Checking for Email Duplication
Урок 163. 00:05:22
Theory: How Does User Authentication Work?
Урок 164. 00:02:55
Choosing a Third-Party Auth Package (Lucia)
Урок 165. 00:04:33
Creating a New Lucia Auth Instance
Урок 166. 00:04:52
Configuring A Session & A Session Cookie
Урок 167. 00:03:44
Setting Up An Auth Session
Урок 168. 00:07:16
Verifying An Active Auth Session
Урок 169. 00:03:08
Protecting Routes Against Unauthenticated Access
Урок 170. 00:05:36
Switching Auth Modes With Query Parameters (Search Params)
Урок 171. 00:05:35
Adding User Login (via a Server Action)
Урок 172. 00:03:45
Triggering Different Server Actions via Query Parameters
Урок 173. 00:03:42
Adding an Auth-only Layout
Урок 174. 00:04:11
Adding User Logout
Урок 175. 00:01:50
Course Roundup
Урок 176. 00:03:11
But There's More NextJS Content!
Урок 177. 00:01:39
From App Router To Pages Router
Урок 178. 00:01:13
Module Introduction
Урок 179. 00:01:20
Our Starting Setup
Урок 180. 00:05:23
What Is "File-based Routing"? And Why Is It Helpful?
Урок 181. 00:04:02
Adding A First Page
Урок 182. 00:01:35
Adding a Named / Static Route File
Урок 183. 00:03:34
Working with Nested Paths & Routes
Урок 184. 00:04:55
Adding Dynamic Paths & Routes
Урок 185. 00:04:55
Extracting Dynamic Path Segment Data (Dynamic Routes)
Урок 186. 00:07:13
Building Nested Dynamic Routes & Paths
Урок 187. 00:05:45
Adding Catch-All Routes
Урок 188. 00:05:45
Navigating with the "Link" Component
Урок 189. 00:03:42
Navigating To Dynamic Routes
Урок 190. 00:02:56
A Different Way Of Setting Link Hrefs
Урок 191. 00:03:51
Navigating Programmatically
Урок 192. 00:01:36
Adding a Custom 404 Page
Урок 193. 00:05:52
Module Summary
Урок 194. 00:02:05
Module Introduction
Урок 195. 00:04:16
Planning The Project
Урок 196. 00:07:36
Setting Up The Main Pages
Урок 197. 00:04:47
Adding Dummy Data & Static Files
Урок 198. 00:07:15
Adding Regular React Components
Урок 199. 00:10:23
Adding More React Components & Connecting Components
Урок 200. 00:09:29
Styling Components In Next.js Projects
Урок 201. 00:08:27
Adding Buttons & Icons
Урок 202. 00:08:32
Adding the "Event Detail" Page (Dynamic Route)
Урок 203. 00:06:28
Adding a General Layout Wrapper Component
Урок 204. 00:02:06
Working on the "All Events" Page
Урок 205. 00:08:26
Adding a Filter Form for Filtering Events
Урок 206. 00:08:26
Navigating to the "Filtered Events" Page Progammatically
Урок 207. 00:08:55
Extracting Data on the Catch-All Page
Урок 208. 00:07:03
Final Steps
Урок 209. 00:01:41
Module Summary
Урок 210. 00:02:26
Module Introduction
Урок 211. 00:05:16
The Problem With Traditional React Apps (and Data Fetching)
Урок 212. 00:05:39
How NextJS Prepares & Pre-renders Pages
Урок 213. 00:04:05
Introducing Static Generation with "getStaticProps"
Урок 214. 00:03:09
NextJS Pre-renders By Default!
Урок 215. 00:06:40
Adding "getStaticProps" To Pages
Урок 216. 00:07:42
Running Server-side Code & Using the Filesystem
Урок 217. 00:05:21
A Look Behind The Scenes
Урок 218. 00:07:23
Utilizing Incremental Static Generation (ISR)
Урок 219. 00:03:46
ISR: A Look Behind The Scenes
Урок 220. 00:04:20
A Closer Look At "getStaticProps" & Configuration Options
Урок 221. 00:09:47
Working With Dynamic Parameters
Урок 222. 00:03:45
Introducing "getStaticPaths" For Dynamic Pages
Урок 223. 00:03:27
Using "getStaticPaths"
Урок 224. 00:04:00
"getStaticPaths" & Link Prefetching: Behind The Scenes
Урок 225. 00:05:28
Working With Fallback Pages
Урок 226. 00:04:03
Loading Paths Dynamically
Урок 227. 00:05:54
Fallback Pages & "Not Found" Pages
Урок 228. 00:04:14
Introducing "getServerSideProps" for Server-side Rendering (SSR)
Урок 229. 00:04:06
Using "getServerSideProps" for Server-side Rendering
Урок 230. 00:04:21
"getServerSideProps" and its Context
Урок 231. 00:04:05
Dynamic Pages & "getServerSideProps"
Урок 232. 00:03:26
"getServerSideProps": Behind The Scenes
Урок 233. 00:03:41
Introducing Client-Side Data Fetching (And When To Use It)
Урок 234. 00:14:48
Implementing Client-Side Data Fetching
Урок 235. 00:08:59
Using the "useSWR" NextJS Hook
Урок 236. 00:08:56
Combining Pre-Fetching With Client-Side Fetching
Урок 237. 00:06:46
Module Summary
Урок 238. 00:01:05
Module Introduction
Урок 239. 00:05:02
Preparations
Урок 240. 00:11:03
Adding Static Site Generation (SSG) On The Home Page
Урок 241. 00:09:51
Loading Data & Paths For Dynamic Pages
Урок 242. 00:07:48
Optimizing Data Fetching
Урок 243. 00:02:48
Working on the "All Events" Page
Урок 244. 00:09:53
Using Server-side Rendering (SSR)
Урок 245. 00:10:56
Adding Client-Side Data Fetching
Урок 246. 00:01:31
Module Summary
Урок 247. 00:01:20
Module Summary
Урок 248. 00:01:50
Analyzing the Need for "head" Metadata
Урок 249. 00:03:42
Configuring the "head" Content
Урок 250. 00:05:18
Adding Dynamic "head"
Урок 251. 00:04:23
Reusing Logic Inside A Component
Урок 252. 00:03:04
Working with the "_app.js" File (and Why)
Урок 253. 00:03:18
Merging "head" Content
Урок 254. 00:05:32
The "_document.js" File (And What It Does)
Урок 255. 00:02:00
A Closer Look At Our Images
Урок 256. 00:08:38
Optimizing Images with the "Next Image" Component & Feature
Урок 257. 00:00:52
Taking A Look At The "Next Image" Documentation
Урок 258. 00:01:17
Module Summary
Урок 259. 00:00:51
Module Introduction
Урок 260. 00:05:38
What are "API Routes"?
Урок 261. 00:08:25
Writing Our First API Route
Урок 262. 00:06:30
Preparing the Frontend Form
Урок 263. 00:10:17
Parsing The Incoming Request & Executing Server-side Code
Урок 264. 00:05:44
Sending Requests To API Routes
Урок 265. 00:07:57
Using API Routes To Get Data
Урок 266. 00:08:05
Using API Routes For Pre-Rendering Pages
Урок 267. 00:13:42
Creating & Using Dynamic API Routes
Урок 268. 00:05:10
Exploring Different Ways Of Structuring API Route Files
Урок 269. 00:01:45
Module Summary
Урок 270. 00:01:32
Module Introduction
Урок 271. 00:05:16
Starting Setup & A Challenge For You!
Урок 272. 00:11:11
Adding a Newsletter Route
Урок 273. 00:08:44
Adding Comments API Routes
Урок 274. 00:11:00
Connecting the Frontend To the Comments API Routes
Урок 275. 00:05:43
Setting Up A MongoDB Database
Урок 276. 00:09:15
Running MongoDB Queries From Inside API Routes
Урок 277. 00:06:27
Inserting Comments Into The Database
Урок 278. 00:04:32
Getting Data From The Database
Урок 279. 00:07:34
Adding Error Handling
Урок 280. 00:10:48
More Error Handling
Урок 281. 00:01:46
Module Summary
Урок 282. 00:01:28
Module Introduction
Урок 283. 00:04:33
Our Target State & Starting Project
Урок 284. 00:05:38
Creating a New React Context
Урок 285. 00:03:50
Adding Context State
Урок 286. 00:04:38
Using Context Data In Components
Урок 287. 00:06:36
Example: Triggering & Showing Notifications
Урок 288. 00:06:32
Example: Removing Notifications (Automatically)
Урок 289. 00:07:23
Challenge Solution
Урок 290. 00:01:10
Module Summary
Урок 291. 00:03:00
Module Introduction
Урок 292. 00:05:11
Setting Up The Core Pages
Урок 293. 00:05:30
Getting Started With The Home Page
Урок 294. 00:08:48
Adding The "Hero" Component
Урок 295. 00:08:46
Adding Layout & Navigation
Урок 296. 00:03:19
Time To Add Styling & A Logo
Урок 297. 00:05:48
Starting Work On The "Featured Posts" Part
Урок 298. 00:09:42
Adding A Post Grid & Post Items
Урок 299. 00:12:26
Rendering Dummy Post Data
Урок 300. 00:04:00
Adding the "All Posts" Page
Урок 301. 00:10:11
Working On The "Post Detail" Page
Урок 302. 00:02:31
Rendering Markdown As JSX
Урок 303. 00:07:33
Adding Markdown Files As A Data Source
Урок 304. 00:13:41
Adding Functions To Read & Fetch Data From Markdown Files
Урок 305. 00:08:20
Using Markdown Data For Rendering Posts
Урок 306. 00:11:43
Rendering Dynamic Post Pages & Paths
Урок 307. 00:12:47
Rendering Images With The "Next Image" Component (From Markdown)
Урок 308. 00:06:30
Rendering Code Snippets From Markdown
Урок 309. 00:04:19
Preparing The Contact Form
Урок 310. 00:04:27
Adding The Contact API Route
Урок 311. 00:07:27
Sending Data From The Client To The API Route
Урок 312. 00:08:53
Storing Messages With MongoDB In A Database
Урок 313. 00:15:06
Adding UI Feedback With Notifications
Урок 314. 00:06:53
Adding "head" Data
Урок 315. 00:02:56
Adding A "_document.js" File
Урок 316. 00:03:46
Using React Portals
Урок 317. 00:01:25
Module Summary
Урок 318. 00:01:18
Module Introduction
Урок 319. 00:08:06
Building NextJS Apps: Your Options
Урок 320. 00:03:07
Key Deployment Steps
Урок 321. 00:03:12
Checking & Optimizing Our Code
Урок 322. 00:14:26
The NextJS Config File & Working With Environment Variables
Урок 323. 00:07:22
Running a Test Build & Reducing Code Size
Урок 324. 00:17:41
A Full Deployment Example (To Vercel)
Урок 325. 00:01:58
A Note On Github & Secret Credentials
Урок 326. 00:02:17
Using the "export" Feature
Урок 327. 00:00:39
Module Summary
Урок 328. 00:01:17
Module Introduction
Урок 329. 00:01:46
Our Starting Project
Урок 330. 00:14:24
How Does Authentication Work (In React & NextJS Apps)?
Урок 331. 00:03:05
Using The "next-auth" Library
Урок 332. 00:13:00
Adding A User Signup API Route
Урок 333. 00:09:42
Sending Signup Requests From The Frontend
Урок 334. 00:03:01
Improving Signup With Unique Email Addresses
Урок 335. 00:14:09
Adding the "Credentials Auth Provider" & User Login Logic
Урок 336. 00:06:53
Sending a "Signin" Request From The Frontend
Урок 337. 00:05:58
Managing Active Session (On The Frontend)
Урок 338. 00:02:19
Adding User Logout
Урок 339. 00:07:51
Adding Client-Side Page Guards (Route Protection)
Урок 340. 00:07:42
Adding Server-Side Page Guards (And When To Use Which Approach)
Урок 341. 00:05:47
Protecting the "Auth" Page
Урок 342. 00:05:15
Using the "next-auth" Session Provider Component
Урок 343. 00:03:43
Analyzing Further Authentication Requirements
Урок 344. 00:06:38
Protecting API Routes
Урок 345. 00:10:37
Adding the "Change Password" Logic
Урок 346. 00:09:17
Sending a "Change Password" Request From The Frontend
Урок 347. 00:03:30
Module Summary & Final Steps
Урок 348. 00:03:04
Module Introduction
Урок 349. 00:04:46
What is NextJS?
Урок 350. 00:06:39
Key Feature: Server-side (Pre-) Rendering of Pages
Урок 351. 00:03:14
Key Feature: File-based Routing
Урок 352. 00:01:51
Key Feature: Build Fullstack Apps With Ease
Урок 353. 00:06:15
Creating a NextJS Project & IDE Setup
Урок 354. 00:02:48
About the "App Router"
Урок 355. 00:02:53
Analyzing the Created Project
Урок 356. 00:06:06
Adding First Pages To The Project
Урок 357. 00:03:48
Adding Nested Pages / Paths
Урок 358. 00:03:37
Creating Dynamic Pages
Урок 359. 00:04:08
Extracting Dynamic Route Data
Урок 360. 00:07:14
Linking Between Pages
Урок 361. 00:03:33
Onwards To A Bigger Project!
Урок 362. 00:03:43
Preparing Our Project Pages
Урок 363. 00:05:04
Rendering A List Of (Dummy) Meetups
Урок 364. 00:03:56
Adding A Form For Adding Meetups
Урок 365. 00:06:18
The "_app.js" File & Wrapper Components
Урок 366. 00:03:48
Programmatic Navigation
Урок 367. 00:10:01
Adding Custom Components & Styling With CSS Modules
Урок 368. 00:05:53
How NextJS Page Pre-Rendering Actually Works
Урок 369. 00:08:57
Introducing Data Fetching For Page Generation (getStaticProps)
Урок 370. 00:05:45
More Static Site Generation (SSG) With getStaticProps
Урок 371. 00:06:28
Exploring getServerSideProps
Урок 372. 00:05:15
Working With Dynamic Path Params In getStaticProps
Урок 373. 00:07:17
Dynamic Pages & getStaticProps & getStaticPaths
Урок 374. 00:06:21
Introducing API Routes
Урок 375. 00:09:33
Connecting & Querying a MongoDB Database
Урок 376. 00:06:50
Sending HTTP Requests To API Routes
Урок 377. 00:07:11
Getting Data From The Database (For Page Pre-Rendering)
Урок 378. 00:09:42
Getting Meetup Detail Data & Paths
Урок 379. 00:09:20
Adding "head" Metadata To Pages
Урок 380. 00:12:27
Deploying NextJS Projects
Урок 381. 00:04:14
Working With Fallback Pages & Re-Deploying
Урок 382. 00:02:16
Module Summary
Урок 383. 00:03:58
Course Roundup