Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Working with React and Go (Golang), а также все другие курсы, прямо сейчас!
Премиум
  1. Урок 1. 00:06:13
    Welcome
  2. Урок 2. 00:01:02
    A bit about me
  3. Урок 3. 00:01:15
    Asking for help
  4. Урок 4. 00:01:07
    Mistakes: we all make them.
  5. Урок 5. 00:01:02
    Installing Node
  6. Урок 6. 00:01:28
    Installing Go
  7. Урок 7. 00:01:57
    Installing Visual Studio Code
  8. Урок 8. 00:00:52
    Installing Docker
  9. Урок 9. 00:13:42
    How React works
  10. Урок 10. 00:05:00
    Hello world with React using Classes
  11. Урок 11. 00:06:43
    Hello world with React using functional components
  12. Урок 12. 00:03:52
    Styling Components
  13. Урок 13. 00:03:09
    Using Bootstrap CSS
  14. Урок 14. 00:04:58
    Using props: passing data to components
  15. Урок 15. 00:09:20
    React and State I
  16. Урок 16. 00:06:48
    React and State II
  17. Урок 17. 00:09:24
    React and State III
  18. Урок 18. 00:06:19
    React and State IV
  19. Урок 19. 00:06:46
    React and State V
  20. Урок 20. 00:03:22
    Intercepting form submissions with onSubmit()
  21. Урок 21. 00:05:53
    handleSubmit() continued
  22. Урок 22. 00:03:30
    Ref: using references in React
  23. Урок 23. 00:03:21
    References with components: forwardRef()
  24. Урок 24. 00:14:00
    Class Lifecycle
  25. Урок 25. 00:02:49
    Getting started with our project
  26. Урок 26. 00:11:38
    Setting up the application layout
  27. Урок 27. 00:03:58
    Getting started with React Router v6
  28. Урок 28. 00:07:15
    Configuring React Router
  29. Урок 29. 00:10:24
    Using React Router's Link
  30. Урок 30. 00:07:49
    Working on the Movies component
  31. Урок 31. 00:02:23
    Routing from the Movies component to individual movies
  32. Урок 32. 00:05:30
    Displaying an individual movie
  33. Урок 33. 00:05:12
    Working on the Login button
  34. Урок 34. 00:12:46
    Creating the login form
  35. Урок 35. 00:04:27
    Giving the Login component access to setJWT
  36. Урок 36. 00:09:02
    Adding error messages and redirects to the Login component
  37. Урок 37. 00:02:35
    Logging out
  38. Урок 38. 00:09:56
    Starting the back end API
  39. Урок 39. 00:06:56
    Adding handlers and routes to our API
  40. Урок 40. 00:04:12
    Installing a routing package
  41. Урок 41. 00:02:43
    Adding a route to our handlers
  42. Урок 42. 00:06:03
    Returning JSON from our API
  43. Урок 43. 00:10:52
    Returning a list of movies as JSON
  44. Урок 44. 00:04:47
    Connecting the front end to the back end API
  45. Урок 45. 00:07:05
    Enabling CORS middleware
  46. Урок 46. 00:02:51
    Enabling React's proxy to the back end API
  47. Урок 47. 00:06:13
    Setting up our database using Docker
  48. Урок 48. 00:03:25
    Getting started connecting our API to Postgres
  49. Урок 49. 00:09:03
    Installing a database driver and connecting to Postgres
  50. Урок 50. 00:16:00
    Setting up a database repository I
  51. Урок 51. 00:05:40
    Setting up a database repository II
  52. Урок 52. 00:03:07
    Improving the allMovies handler to use our database
  53. Урок 53. 00:07:11
    Setting up utils.go and a writeJSON helper function
  54. Урок 54. 00:06:20
    Adding a readJSON helper function
  55. Урок 55. 00:02:23
    Adding an errorJSON helper function
  56. Урок 56. 00:01:32
    Using our errorJSON helper function
  57. Урок 57. 00:08:10
    Installing a JWT package
  58. Урок 58. 00:13:12
    Generating tokens
  59. Урок 59. 00:06:10
    Setting default values for JWT tokens
  60. Урок 60. 00:03:43
    Creating a handler to generate a JWT
  61. Урок 61. 00:02:14
    Trying out our handler
  62. Урок 62. 00:05:47
    Generate refresh token cookie
  63. Урок 63. 00:02:08
    Reading a JSON payload in the authenticate handler
  64. Урок 64. 00:07:46
    Looking up a user by email
  65. Урок 65. 00:06:42
    Validating a password
  66. Урок 66. 00:08:46
    Updating the Login component on the front end
  67. Урок 67. 00:10:12
    Refresh tokens I
  68. Урок 68. 00:04:19
    Refresh tokens II
  69. Урок 69. 00:05:32
    Refresh tokens III
  70. Урок 70. 00:09:00
    Refresh tokens IV
  71. Урок 71. 00:09:34
    Refresh tokens V
  72. Урок 72. 00:13:43
    Protecting routes using JWT tokens
  73. Урок 73. 00:02:44
    Authentication middleware
  74. Урок 74. 00:03:10
    Adding our middleware to routes
  75. Урок 75. 00:09:13
    Trying our our protected routes
  76. Урок 76. 00:04:13
    Starting on the Add/Edit movie component
  77. Урок 77. 00:05:31
    Creating a select component
  78. Урок 78. 00:03:04
    Creating a checkbox component
  79. Урок 79. 00:13:52
    Using our input controls to create the edit movie form
  80. Урок 80. 00:09:01
    Continuing to work on the EditMovie component
  81. Урок 81. 00:19:34
    Getting a movie and Genres from the database
  82. Урок 82. 00:08:37
    Creating handlers to get movies for public and admin
  83. Урок 83. 00:08:52
    Displaying a movie to the public on the front end
  84. Урок 84. 00:07:30
    Getting started with showing genres on the Add/Edit movie component
  85. Урок 85. 00:18:32
    Adding checkboxes for genres to the front end form
  86. Урок 86. 00:04:59
    Enabling checkbox clicks on the EditMovie component
  87. Урок 87. 00:05:48
    Validation I
  88. Урок 88. 00:06:17
    Validation II
  89. Урок 89. 00:04:18
    Creating a database method to insert a movie
  90. Урок 90. 00:03:04
    Creating a handler to insert a movie
  91. Урок 91. 00:12:35
    Getting a movie image from a remote API I
  92. Урок 92. 00:02:36
    Getting a movie image from a remote API II
  93. Урок 93. 00:05:52
    Handling genres when inserting a movie
  94. Урок 94. 00:07:38
    Inserting a movie from the front end
  95. Урок 95. 00:02:36
    Trying out adding a movie
  96. Урок 96. 00:10:02
    Editing an existing movie I
  97. Урок 97. 00:01:52
    Editing an existing movie II
  98. Урок 98. 00:03:19
    Editing an existing movie III
  99. Урок 99. 00:05:26
    Writing the handler to update a movie
  100. Урок 100. 00:03:32
    Trying out editing a movie from the front end
  101. Урок 101. 00:06:20
    Getting started with deleting a movie
  102. Урок 102. 00:02:02
    Deleting a movie II
  103. Урок 103. 00:02:37
    Deleting a movie III
  104. Урок 104. 00:01:44
    Deleting a movie IV
  105. Урок 105. 00:04:25
    Getting started with listing movies by Genre
  106. Урок 106. 00:03:15
    Creating a handler to list movies by Genre
  107. Урок 107. 00:08:41
    Modifying the front end to list movies by Genre
  108. Урок 108. 00:10:50
    Creating the OneGenre component
  109. Урок 109. 00:09:29
    Getting started with GraphQL
  110. Урок 110. 00:11:43
    GraphQL II
  111. Урок 111. 00:04:36
    GraphQL III
  112. Урок 112. 00:05:38
    Creating a handler for GraphQL
  113. Урок 113. 00:15:59
    Connecting to our GraphQL endpoint from the front end
  114. Урок 114. 00:07:14
    Adding search functionality
  115. Урок 115. 00:07:11
    Configuring environment variables with .env
  116. Урок 116. 00:03:36
    Preparing the back end for deployment
  117. Урок 117. 00:02:16
    Dumping our database for the live server
  118. Урок 118. 00:05:46
    Copying files to the server for deployment
  119. Урок 119. 00:06:28
    Populating the database on the live server
  120. Урок 120. 00:07:44
    Starting our back end with Supervisor
  121. Урок 121. 00:07:46
    Configuring Caddy
  122. Урок 122. 00:02:27
    Trying out our live application
  123. Урок 123. 00:03:23
    Fixing the Genres component
  124. Урок 124. 00:04:03
    Introduction
  125. Урок 125. 00:00:53
    A bit about me
  126. Урок 126. 00:01:45
    How to ask for help
  127. Урок 127. 00:01:30
    Installing node.js and an IDE
  128. Урок 128. 00:02:53
    Installing Postgres
  129. Урок 129. 00:00:51
    Installing Go
  130. Урок 130. 00:03:36
    How React Works
  131. Урок 131. 00:01:09
    How to use the downloadable code
  132. Урок 132. 00:02:34
    Our first React app
  133. Урок 133. 00:10:53
    The obligatory "Hello, world" app
  134. Урок 134. 00:07:10
    Working with components
  135. Урок 135. 00:05:03
    Styling components
  136. Урок 136. 00:04:38
    Using a CSS Framework
  137. Урок 137. 00:03:18
    More about the CSS Framework
  138. Урок 138. 00:04:16
    Components and props
  139. Урок 139. 00:02:40
    More about props
  140. Урок 140. 00:06:32
    React Events
  141. Урок 141. 00:04:31
    More events
  142. Урок 142. 00:05:19
    Refs
  143. Урок 143. 00:08:25
    Simplifying things with state
  144. Урок 144. 00:09:39
    More about state: lifting state to share data between components
  145. Урок 145. 00:06:08
    Functional components
  146. Урок 146. 00:02:09
    Cleaning things up
  147. Урок 147. 00:02:24
    What are we going to create?
  148. Урок 148. 00:15:14
    Creating our front end application and introducting the React Router
  149. Урок 149. 00:02:25
    Routing to a component
  150. Урок 150. 00:01:14
    Challenge: Route to components
  151. Урок 151. 00:02:53
    Solution to Challenge
  152. Урок 152. 00:07:41
    More about routing (and a bit about the React lifecycle)
  153. Урок 153. 00:05:15
    More about routing Part II
  154. Урок 154. 00:10:57
    More about routing Part III
  155. Урок 155. 00:06:29
    Displaying one movie
  156. Урок 156. 00:02:07
    Installing the necessary software
  157. Урок 157. 00:12:17
    Setting up the Go project
  158. Урок 158. 00:14:14
    Installing a router and creating better handlers
  159. Урок 159. 00:05:19
    Models
  160. Урок 160. 00:11:44
    Setting up a simple API route
  161. Урок 161. 00:03:32
    Improved error handling
  162. Урок 162. 00:01:41
    Creating the database
  163. Урок 163. 00:08:01
    Creating our connection pool and connecting to the database
  164. Урок 164. 00:12:13
    Database functions & a challenge
  165. Урок 165. 00:08:50
    Solution to challenge
  166. Урок 166. 00:02:33
    An aside: cleaning up our JSON feed
  167. Урок 167. 00:09:27
    Getting all movies as JSON
  168. Урок 168. 00:02:00
    Next Steps
  169. Урок 169. 00:03:47
    Setting up CORS middleware
  170. Урок 170. 00:05:05
    Getting the list of movies
  171. Урок 171. 00:05:55
    Checking for errors
  172. Урок 172. 00:08:11
    Displaying one movie
  173. Урок 173. 00:07:40
    Getting started with Movies by Genre
  174. Урок 174. 00:05:52
    Getting Genres from back end
  175. Урок 175. 00:03:19
    Displaying the list of Genres
  176. Урок 176. 00:06:11
    Getting movies by Genre
  177. Урок 177. 00:06:24
    Displaying movies by Genre
  178. Урок 178. 00:03:50
    Showing Genre name - an alternative to lifting state
  179. Урок 179. 00:02:57
    Code clean up
  180. Урок 180. 00:11:59
    Building a form in React
  181. Урок 181. 00:10:57
    Making our form a controlled component, and binding it to state
  182. Урок 182. 00:07:33
    Making form inputs reusable components and a Challenge
  183. Урок 183. 00:01:09
    Solution to Challenge
  184. Урок 184. 00:07:24
    Creating a reusable select component
  185. Урок 185. 00:08:09
    Prepopulating the form with an existing movie
  186. Урок 186. 00:07:49
    Sending data to the REST back end
  187. Урок 187. 00:07:06
    Client side form validation
  188. Урок 188. 00:16:49
    Receiving data on the REST back end
  189. Урок 189. 00:09:10
    Providing feedback with a reusable alert
  190. Урок 190. 00:06:12
    Editing an existing movie
  191. Урок 191. 00:05:02
    Deleting a movie
  192. Урок 192. 00:06:01
    Adding a confirmation step when deleting movies
  193. Урок 193. 00:03:31
    Implementing delete on the back end
  194. Урок 194. 00:06:11
    Connecting our delete button to the REST back end
  195. Урок 195. 00:02:29
    Challenge: displaying list of movies to edit
  196. Урок 196. 00:01:12
    Solution to challenge
  197. Урок 197. 00:15:34
    Generating JSON Web Tokens on the back end
  198. Урок 198. 00:19:25
    Changing App to a component, and setting up state
  199. Урок 199. 00:06:15
    Getting the JSON Web Token from the back end
  200. Урок 200. 00:04:01
    Handling a successful login
  201. Урок 201. 00:18:14
    Adding middleware to check for a valid token
  202. Урок 202. 00:07:30
    Protecting the route on our front end
  203. Урок 203. 00:02:59
    Adding redirects for protected components
  204. Урок 204. 00:01:39
    Challenge
  205. Урок 205. 00:02:27
    Solution to Challenge
  206. Урок 206. 00:06:28
    Saving our token when the user leaves the site
  207. Урок 207. 00:04:37
    Making better error responses from our back end
  208. Урок 208. 00:05:07
    Adding images
  209. Урок 209. 00:01:33
    What is GraphQL?
  210. Урок 210. 00:15:33
    Setting up a schema and REST endpoint for GraphQL
  211. Урок 211. 00:05:58
    Handling the GraphQL request
  212. Урок 212. 00:11:38
    Implementing GraphQL requests for all movies
  213. Урок 213. 00:05:33
    Adding a search endpoint
  214. Урок 214. 00:08:58
    Implementing GraphQL requests for search on front end
  215. Урок 215. 00:02:57
    Displaying one movie using GraphQL
  216. Урок 216. 00:06:56
    Updating the front end
  217. Урок 217. 00:12:53
    Modifying the back end to handle poster images
  218. Урок 218. 00:04:56
    Updating the front end to display the poster image
  219. Урок 219. 00:02:53
    Cleaning things up
  220. Урок 220. 00:04:05
    Getting the React application ready for deployment
  221. Урок 221. 00:02:45
    Building the production ready React application
  222. Урок 222. 00:03:04
    Getting the Go project ready for deployment
  223. Урок 223. 00:01:30
    Building the Go back end for our remote server
  224. Урок 224. 00:02:21
    Copying files to the server
  225. Урок 225. 00:03:35
    Setting up the production database
  226. Урок 226. 00:10:03
    Setting up the web server
  227. Урок 227. 00:04:53
    Running the Go back end with supervisor
  228. Урок 228. 00:08:59
    About this section
  229. Урок 229. 00:10:28
    Converting the Movies.js component to a function with hooks
  230. Урок 230. 00:04:47
    Coverting the Genres.js component to a function with hooks
  231. Урок 231. 00:05:25
    Converting the OneMovie.js component to a function
  232. Урок 232. 00:07:15
    Converting the OneGenre.js component to a function
  233. Урок 233. 00:20:16
    Converting the EditMovie.js component to a function
  234. Урок 234. 00:01:45
    Challenge: convert Admin.js to a function
  235. Урок 235. 00:02:17
    Solution to challenge
  236. Урок 236. 00:10:07
    Convert Login.js to a function
  237. Урок 237. 00:07:42
    Convert App.js to a function
  238. Урок 238. 00:01:58
    React and Redux