Урок 1. 00:05:41
Course Outline
Урок 2. 00:02:21
What is Remix?
Урок 3. 00:06:37
Why Remix?
Урок 4. 00:03:52
Intro to the Master Project
Урок 5. 00:07:24
The Recipe Page & Optimistic UI
Урок 6. 00:05:39
Finishing the Tour of the Master Project
Урок 7. 00:02:03
Installing NodeJS
Урок 8. 00:01:52
Creating a Remix Project
Урок 9. 00:04:00
The Vite Config File
Урок 10. 00:03:33
Upgrading Remix and Future Flags
Урок 11. 00:02:13
Owning Your Entry Points
Урок 12. 00:02:49
What are Routes?
Урок 13. 00:06:32
Nested Routing
Урок 14. 00:03:16
The Root Route
Урок 15. 00:03:42
Remix's Special Components
Урок 16. 00:03:06
The Link API
Урок 17. 00:07:14
Adding Style with Links
Урок 18. 00:07:45
Techniques for Component-Level CSS
Урок 19. 00:03:39
Setting Up Tailwind
Урок 20. 00:04:27
Using Tailwind - Part 1
Урок 21. 00:05:46
Using Tailwind - Part 2
Урок 22. 00:05:10
Using Tailwind - Part 3
Урок 23. 00:09:35
What are Loaders?
Урок 24. 00:09:07
Pending UI
Урок 25. 00:09:44
Why Load Before Route Transitions
Урок 26. 00:12:03
Sharing Data Between Routes
Урок 27. 00:06:24
Errors and Error Boundaries
Урок 28. 00:15:10
Installing Postgres with Docker
Урок 29. 00:07:16
Setting Up Prisma with Postgres
Урок 30. 00:02:26
Overview
Урок 31. 00:11:04
Setting Up the Pantry Route
Урок 32. 00:07:05
Redirects in Remix
Урок 33. 00:13:13
Setting Up the Pantry Database Tables
Урок 34. 00:09:14
Seeding the Database
Урок 35. 00:09:37
Database UI Tools
Урок 36. 00:05:13
Loading Data into the Pantry UI
Урок 37. 00:10:38
Creating a Model Abstraction
Урок 38. 00:10:54
Building a Basic Shelf UI
Урок 39. 00:21:35
Intro to HTML Forms
Урок 40. 00:08:17
Enhancing the Search Bar with JavaScript
Урок 41. 00:14:12
Creating Shelves
Урок 42. 00:08:10
Enhancing the Create Shelf Button
Урок 43. 00:18:46
Deleting Shelves
Урок 44. 00:06:58
Handling Multiple Deletes
Урок 45. 00:07:31
Introducing useFetcher
Урок 46. 00:02:06
More Cases for useFetcher
Урок 47. 00:04:28
Server State in Remix
Урок 48. 00:12:28
Editing Shelf Names
Урок 49. 00:18:45
Validating Forms with Zod
Урок 50. 00:09:20
Intro to Optimistic UI
Урок 51. 00:12:57
Optimistically Deleting Shelves
Урок 52. 00:07:22
Creating Shelf Items
Урок 53. 00:11:57
Deleting Shelf Items
Урок 54. 00:21:46
Optimistically Creating Shelf Items
Урок 55. 00:04:24
Suppressing the Layout Effect Warning
Урок 56. 00:08:18
Optimistically Deleting Shelf Items
Урок 57. 00:14:17
Additional Enhancements
Урок 58. 00:01:33
Overview
Урок 59. 00:07:41
The User Model
Урок 60. 00:10:11
The Login Route
Урок 61. 00:02:25
Intro to Cookies
Урок 62. 00:03:41
Setting Our First Cookie
Урок 63. 00:07:28
Cookie Attributes
Урок 64. 00:06:21
A Simple Auth Flow
Урок 65. 00:05:05
Remix's Cookie Helper
Урок 66. 00:04:10
Cryptographic Signatures
Урок 67. 00:01:46
Signing Cookies
Урок 68. 00:04:28
Signing Cookies in Remix
Урок 69. 00:03:43
Sessions
Урок 70. 00:04:03
Session Storage
Урок 71. 00:07:11
Session Storage in Remix
Урок 72. 00:02:46
Overview
Урок 73. 00:02:03
What is Authentication
Урок 74. 00:02:52
Overview of Magic Link Authentication
Урок 75. 00:01:52
Magic Link Structure
Урок 76. 00:07:47
Generating Magic Links
Урок 77. 00:03:58
Updating the Login Route
Урок 78. 00:01:50
Validation Route Overview
Урок 79. 00:08:37
Parsing the Magic Link Payload
Урок 80. 00:03:10
Validating the Expiration Time
Урок 81. 00:06:05
Validating the Nonce
Урок 82. 00:02:43
Finishing the Login
Урок 83. 00:08:13
The Sign Up Form
Урок 84. 00:09:38
The Sign Up Form Action
Урок 85. 00:03:49
Signing Up for Mailgun
Урок 86. 00:06:17
Setting Up the Mailgun Client
Урок 87. 00:06:09
Sending the Magic Link Email
Урок 88. 00:02:20
Showing the Check Email Message
Урок 89. 00:02:53
Overview
Урок 90. 00:02:27
Authorization Rules for the Login Page
Урок 91. 00:06:20
Login Authorization Rule #1
Урок 92. 00:01:07
Login Authorization Rule #2
Урок 93. 00:05:55
Authorization Rules for the Pantry Page
Урок 94. 00:02:43
Pantry Authorization Rule #1
Урок 95. 00:01:41
Pantry Authorization Rule #2
Урок 96. 00:02:16
Pantry Authorization Rules #3-4
Урок 97. 00:03:44
Pantry Authorization Rules #5-6
Урок 98. 00:02:23
Pantry Authorization Rule #7
Урок 99. 00:02:16
UI Updates Roadmap
Урок 100. 00:07:31
Adding an Error Boundary
Урок 101. 00:03:04
Hiding the App Nav Button
Урок 102. 00:05:29
Creating a Logout Route
Урок 103. 00:04:06
Overview
Урок 104. 00:03:29
Revisiting the Remix Philosophy
Урок 105. 00:04:35
Setting Up the Recipes Route
Урок 106. 00:03:56
Setting Up the Recipe Database Tables
Урок 107. 00:04:24
Updating the Seed Script
Урок 108. 00:01:45
Recipe Page Components
Урок 109. 00:06:00
The Recipes Loader
Урок 110. 00:04:20
Rendering the Recipe List
Урок 111. 00:07:47
Creating a Search Bar Component
Урок 112. 00:02:10
Supporting Search in the Loader
Урок 113. 00:04:52
The Create Recipe Form
Урок 114. 00:04:45
Setting Up the Recipe Detail Route
Урок 115. 00:01:36
Sorting the Recipes List
Урок 116. 00:06:18
Preserving the Search Parameters
Урок 117. 00:05:42
Recipe Link Pending UI
Урок 118. 00:08:20
Using Link Prefetch
Урок 119. 00:01:40
Recipe Detail Route Overview
Урок 120. 00:06:41
Overview of Step 1 - Creating an Input Component
Урок 121. 00:10:14
Displaying the Name and Total Time
Урок 122. 00:07:25
Rendering the Ingredients
Урок 123. 00:06:31
Rendering the Instructions
Урок 124. 00:01:04
Overview of Step 2 - Updating Recipes
Урок 125. 00:08:33
Saving the Recipe Name, Total Time, and Instructions
Урок 126. 00:04:01
FormData's getAll Function
Урок 127. 00:08:29
Updating the validateForm Function
Урок 128. 00:08:06
Updating the Ingredients
Урок 129. 00:07:29
Creating New Ingredients
Урок 130. 00:04:09
Addressing and Issue
Урок 131. 00:07:40
Adding Error Messages to the UI
Урок 132. 00:02:57
Exercise: Imposter Syndrome
Урок 133. 00:00:33
Overview of Step 3 - Deleting Recipes and Ingredients
Урок 134. 00:02:28
Deleting a Recipe
Урок 135. 00:03:39
Deleting Ingredients
Урок 136. 00:01:51
Authorization Rules for the Recipe Detail Route
Урок 137. 00:02:56
Recipe Detail Authorization Rule #1
Урок 138. 00:02:08
Recipe Detail Authorization Rules #2-5
Урок 139. 00:02:35
Enhancement Overview
Урок 140. 00:01:20
Overview of Step 1 - Saving Inputs on Change
Урок 141. 00:08:23
Saving Recipe Inputs on Change
Урок 142. 00:05:53
Creating an Ingredient Row Component
Урок 143. 00:04:04
Saving Ingredient Inputs on Change
Урок 144. 00:06:51
Persisting the Recipe Fetcher Data
Урок 145. 00:05:07
Persisting the Ingredient Fetcher Data
Урок 146. 00:02:07
Debouncing Form Inputs
Урок 147. 00:07:04
Creating a Hook for Debouncing
Урок 148. 00:03:32
Debouncing the Form Inputs
Урок 149. 00:02:02
Overview of Step 2 - The Case for Optimistic UI in the Side Bar
Урок 150. 00:05:47
Updating the Side Bar with useFetchers
Урок 151. 00:03:40
Overview of Step 3
Урок 152. 00:09:28
Wiring up a Fetcher to Create New Ingredients
Урок 153. 00:05:18
Creating a Hook for Optimistically Rendering Ingredients
Урок 154. 00:04:59
Optimistically Rendering New Ingredients
Урок 155. 00:04:15
Updating the Default Enter Key Behavior
Урок 156. 00:01:55
Creating Mew Ingredients with the Enter Key
Урок 157. 00:04:48
Focusing the Amount Input on Create
Урок 158. 00:03:44
Optimistically Deleting Ingredients
Урок 159. 00:01:23
Overview
Урок 160. 00:03:27
Creating a File Input
Урок 161. 00:05:36
The Urlencoded Content Type
Урок 162. 00:05:30
The Multipart Content Type
Урок 163. 00:01:27
Parsing Multipart Forms
Урок 164. 00:05:17
Overview of Parsing Multipart Forms in Remix
Урок 165. 00:03:48
Remix's Built-In Upload Handlers
Урок 166. 00:03:16
Storing Images in the Public Directory
Урок 167. 00:03:10
Writing the Image URL to the Database
Урок 168. 00:03:30
Overview
Урок 169. 00:02:19
Updating the DB to Track Meal Plans
Урок 170. 00:04:30
Modals in Remix
Урок 171. 00:05:00
Setting up the Modal Route
Урок 172. 00:05:26
Creating some Components for the Modal
Урок 173. 00:05:44
Meal Plan Modal UI
Урок 174. 00:04:47
Passing Context to the Outlet
Урок 175. 00:05:23
Creating the Modal Action
Урок 176. 00:06:19
The Update Meal Plan Action Case
Урок 177. 00:03:32
Indicating which Recipes are in the Meal Plan
Урок 178. 00:07:01
The Meal Plan Filter Button
Урок 179. 00:02:27
The Meal Plan Filter Backend
Урок 180. 00:05:18
Preserving the Search State when Filtering
Урок 181. 00:03:49
Preserving the Filter State when Searching
Урок 182. 00:02:22
Overview of Next Steps and Setting up the Grocery List Route
Урок 183. 00:04:17
Defining the Grocery List Item Type
Урок 184. 00:06:17
Building the Grocery List Item Component
Урок 185. 00:06:17
Getting Started on the Grocery List Loader
Урок 186. 00:03:36
Formatting the Missing Ingredients
Урок 187. 00:06:06
Grouping Grocery List Items by the Ingredient Name
Урок 188. 00:02:36
Rendering the Grocery List
Урок 189. 00:04:29
Creating the Grocery List Route Action
Урок 190. 00:06:21
Adding Grocery Items to the Pantry
Урок 191. 00:03:18
The Grocery List Empty State
Урок 192. 00:06:14
Clearing the Meal Plan
Урок 193. 00:01:29
Overview
Урок 194. 00:04:06
The PageLayout Component
Урок 195. 00:02:31
Setting up the Settings Route
Урок 196. 00:02:39
Intro to Resource Routes
Урок 197. 00:05:46
MIME Types
Урок 198. 00:02:34
Overview of Customizing the Theme
Урок 199. 00:01:46
Renaming the Resource Route
Урок 200. 00:05:02
Controlling the Tailwind Theme with the Theme Resource Route
Урок 201. 00:03:50
Building the Form to Change the Site Theme
Урок 202. 00:02:09
Creating the Theme Cookie
Урок 203. 00:04:05
The App Settings Route Action
Урок 204. 00:02:51
The App Settings Route Loader
Урок 205. 00:05:20
Fixing the Off-By-One Issue
Урок 206. 00:03:32
Returning Dynamic CSS Based on the Theme Cookie
Урок 207. 00:00:53
Overview
Урок 208. 00:01:18
Redirecting the Home Page
Урок 209. 00:04:38
The Discover Page UI
Урок 210. 00:02:45
Discover Detail Page Setup
Урок 211. 00:03:07
Discover Detail Page UI
Урок 212. 00:01:48
Intro to Caching
Урок 213. 00:03:10
Private vs Server Caches
Урок 214. 00:03:42
Preview of Using the Browser Cache
Урок 215. 00:02:36
Caching Vocabulary
Урок 216. 00:03:32
The Default Browser Strategy
Урок 217. 00:01:24
The No-Store Strategy
Урок 218. 00:01:22
The Fixed-Time Strategy
Урок 219. 00:04:10
The Cache-Busting Strategy
Урок 220. 00:01:45
The Revalidate-Once-Stale Strategy
Урок 221. 00:04:04
Etags
Урок 222. 00:03:13
Responding to the If-None-Match Header
Урок 223. 00:04:22
The Stale-While-Revalidate Strategy
Урок 224. 00:02:29
Caching Full HTML Pages
Урок 225. 00:05:40
Responding to If-None-Match on HTML Requests
Урок 226. 00:01:01
Introduction to Testing
Урок 227. 00:02:00
Setting Up Playwright
Урок 228. 00:06:52
Writing our First Test
Урок 229. 00:07:01
Creating Dynamic Routes
Урок 230. 00:04:54
Implementing the Test Login Route
Урок 231. 00:07:18
Testing a Typical Pantry Page Flow
Урок 232. 00:04:05
Finishing up the Pantry Test
Урок 233. 00:02:23
The Playwright UI
Урок 234. 00:04:24
Creating a Delete User Test Endpoint
Урок 235. 00:01:42
Deleting Test Users
Урок 236. 00:00:45
Deployment Overview
Урок 237. 00:02:48
The Fly CLI
Урок 238. 00:03:28
Prisma MIgrations
Урок 239. 00:03:15
Creating the Database Server
Урок 240. 00:01:39
Creating the App Server
Урок 241. 00:03:27
Setting Environment Variables
Урок 242. 00:01:10
Deploying the App
Урок 243. 00:13:52
An Example of Upgrading Remix
Урок 244. 00:01:18
Thank You!
Урок 245. 00:09:14
ARCHIVED - Seeding the Database (Archived Apr 2024)
Could you update this one from zerotomastery
https://coursehunter.net/course/razrabotchik-next-js-v-2022-godu-c-nulya-do-masterstva
Complete Next.js Developer in 2024