
├─Working with Vue3 and Go (Golang)
├─1. Introduction
│ ├─1. Introduction.en.srt
│ ├─1. Introduction.mp4
│ ├─1. Introduction.srt
│ ├─2. About me.en.srt
│ ├─2. About me.mp4
│ ├─2. About me.srt
│ ├─3. Options API vs. Composition API.en.srt
│ ├─3. Options API vs. Composition API.mp4
│ ├─3. Options API vs. Composition API.srt
│ ├─3.1 Vue.js getting started guide.html
│ ├─4. Installing Go.en.srt
│ ├─4. Installing Go.mp4
│ ├─4. Installing Go.srt
│ ├─5. Installing Visual Studio Code.en.srt
│ ├─5. Installing Visual Studio Code.mp4
│ ├─5. Installing Visual Studio Code.srt
│ ├─6. Installing the Vetur VS Code extension.en.srt
│ ├─6. Installing the Vetur VS Code extension.mp4
│ ├─6. Installing the Vetur VS Code extension.srt
│ ├─7. Installing make.en.srt
│ ├─7. Installing make.mp4
│ ├─7. Installing make.srt
│ ├─8. How to ask for help.en.srt
│ ├─8. How to ask for help.mp4
│ ├─8. How to ask for help.srt
├─2. Getting Started with Vue
│ ├─1. What we are going to cover in this section.en.srt
│ ├─1. What we are going to cover in this section.mp4
│ ├─1. What we are going to cover in this section.srt
│ ├─2. Using Vue with a CDN (npm comes later).en.srt
│ ├─2. Using Vue with a CDN (npm comes later).mp4
│ ├─2. Using Vue with a CDN (npm comes later).srt
│ ├─2.1 Bootstrap.html
│ ├─2.3 jsdeliver.com.html
│ ├─3. The structure of a Vue app.en.srt
│ ├─3. The structure of a Vue app.mp4
│ ├─3. The structure of a Vue app.srt
│ ├─4. Adding a simple form element and binding data.en.srt
│ ├─4. Adding a simple form element and binding data.mp4
│ ├─4. Adding a simple form element and binding data.srt
│ ├─5. Adding a counter.en.srt
│ ├─5. Adding a counter.mp4
│ ├─5. Adding a counter.srt
│ ├─6. Vue Components – Getting Started.en.srt
│ ├─6. Vue Components – Getting Started.mp4
│ ├─6. Vue Components – Getting Started.srt
│ ├─7. Creating a reusable form input component.en.srt
│ ├─7. Creating a reusable form input component.mp4
│ ├─7. Creating a reusable form input component.srt
│ ├─8. Trying out our TextInput component.en.srt
│ ├─8. Trying out our TextInput component.mp4
│ ├─8. Trying out our TextInput component.srt
│ ├─9. The Vue lifecycle and client side validation.en.srt
│ ├─9. The Vue lifecycle and client side validation.mp4
│ ├─9. The Vue lifecycle and client side validation.srt
│ ├─9.1 Bootstrap validation.html
│ ├─9.2 Lifecycle Hooks.html
│ ├─9.4 Vue lifecyle diagram.html
│ ├─10. Nesting components within components.en.srt
│ ├─10. Nesting components within components.mp4
│ ├─10. Nesting components within components.srt
│ ├─11. Adding a select form component.en.srt
│ ├─11. Adding a select form component.mp4
│ ├─11. Adding a select form component.srt
│ ├─12. Adding a checkbox form component.en.srt
│ ├─12. Adding a checkbox form component.mp4
│ ├─12. Adding a checkbox form component.srt
│ ├─13. Conditional Rendering.en.srt
│ ├─13. Conditional Rendering.mp4
│ ├─13. Conditional Rendering.srt
│ ├─13.1 Conditional Rendering on vuejs.org.html
│ ├─14. Fetching remote data.en.srt
│ ├─14. Fetching remote data.mp4
│ ├─14. Fetching remote data.srt
│ ├─14.2 The Gutenberg project's API for books.html
│ ├─15. Using the data we fetch in our Vue application.en.srt
│ ├─15. Using the data we fetch in our Vue application.mp4
│ ├─15. Using the data we fetch in our Vue application.srt
│ ├─16. Adding some interactivity to our list of books.en.srt
│ ├─16. Adding some interactivity to our list of books.mp4
│ ├─16. Adding some interactivity to our list of books.srt
│ ├─17. Removing a book from the list.en.srt
│ ├─17. Removing a book from the list.mp4
│ ├─17. Removing a book from the list.srt
│ ├─favicon.ico
│ └─vue-course
│ │ ├─favicon.ico
│ │ ├─fetch.html
│ │ ├─forms.js
│ │ ├─index.html
│ │ ├─registration-form.js
│ │ ├─registration.html
├─3. Working with Vue using Single File Components, the vue-cli and Node.js
│ ├─1. Installing Node.js.en.srt
│ ├─1. Installing Node.js.mp4
│ ├─1. Installing Node.js.srt
│ ├─1.1 nodejs.org.html
│ ├─2. Installing vue-cli.en.srt
│ ├─2. Installing vue-cli.mp4
│ ├─2. Installing vue-cli.srt
│ ├─2.1 vue-cli installation.html
│ ├─3. Building and running a simple Vue application with vue-cli.en.srt
│ ├─3. Building and running a simple Vue application with vue-cli.mp4
│ ├─3. Building and running a simple Vue application with vue-cli.srt
│ ├─4. The structure of a vue-cli application.en.srt
│ ├─4. The structure of a vue-cli application.mp4
│ ├─4. The structure of a vue-cli application.srt
│ ├─5. Getting started with our app.en.srt
│ ├─5. Getting started with our app.mp4
│ ├─5. Getting started with our app.srt
│ ├─6. Registering header, body, and footer components.en.srt
│ ├─6. Registering header, body, and footer components.mp4
│ ├─6. Registering header, body, and footer components.srt
│ ├─7. Adding navigation to our header component.en.srt
│ ├─7. Adding navigation to our header component.mp4
│ ├─7. Adding navigation to our header component.srt
│ ├─8. Adding content to our body component.en.srt
│ ├─8. Adding content to our body component.mp4
│ ├─8. Adding content to our body component.srt
│ ├─8.1 book-and-glasses.png
│ ├─9. Adding content to our footer component.en.srt
│ ├─9. Adding content to our footer component.mp4
│ ├─9. Adding content to our footer component.srt
├─4. Routing with the Vue Router
│ ├─1. Installing the Vue Router.en.srt
│ ├─1. Installing the Vue Router.mp4
│ ├─1. Installing the Vue Router.srt
│ ├─1.2 The Vue Router.html
│ ├─2. Getting started with the Vue Router.en.srt
│ ├─2. Getting started with the Vue Router.mp4
│ ├─2. Getting started with the Vue Router.srt
│ ├─3. Adding our routes in App.vue and main.js.en.srt
│ ├─3. Adding our routes in App.vue and main.js.mp4
│ ├─3. Adding our routes in App.vue and main.js.srt
│ ├─4. Creating a second component and updating our navigation links.en.srt
│ ├─4. Creating a second component and updating our navigation links.mp4
│ ├─4. Creating a second component and updating our navigation links.srt
│ ├─5. Adding and using our form Vue Components from the previous section.en.srt
│ ├─5. Adding and using our form Vue Components from the previous section.mp4
│ ├─5. Adding and using our form Vue Components from the previous section.srt
│ ├─6. Creating and implementing a re-usable Form tag component.en.srt
│ ├─6. Creating and implementing a re-usable Form tag component.mp4
│ ├─6. Creating and implementing a re-usable Form tag component.srt
│ ├─7. Improving our Login form by binding data and listening for an event.en.srt
│ ├─7. Improving our Login form by binding data and listening for an event.mp4
│ ├─7. Improving our Login form by binding data and listening for an event.srt
│ ├─8. Improving our FormTag and simplifying client side validation.en.srt
│ ├─8. Improving our FormTag and simplifying client side validation.mp4
│ ├─8. Improving our FormTag and simplifying client side validation.srt
│ └─source
│ │ ├─babel.config.js
│ │ ├─package-lock.json
│ │ ├─package.json
│ │ ├─README.md
│ │ ├─public
│ │ │ ├─favicon.ico
│ │ │ ├─index.html
│ │ └─src
│ │ │ ├─App.vue
│ │ │ ├─main.js
│ │ │ ├─assets
│ │ │ │ ├─book-and-glasses.png
│ │ │ │ ├─logo.png
│ │ │ └─components
│ │ │ │ ├─Body.vue
│ │ │ │ ├─Footer.vue
│ │ │ │ ├─Header.vue
├─5. Building a Go REST back end
│ ├─1. How Go works with JSON files.en.srt
│ ├─1. How Go works with JSON files.mp4
│ ├─1. How Go works with JSON files.srt
│ ├─1.1 Go By Example JSON.html
│ ├─1.2 Go JSON types.html
│ ├─1.3 Sample Go program which reads JSON.html
│ ├─1.4 Sample Go program which writes JSON.html
│ ├─2. Setting up our project.en.srt
│ ├─2. Setting up our project.mp4
│ ├─2. Setting up our project.srt
│ ├─3. Improving routes.en.srt
│ ├─3. Improving routes.mp4
│ ├─3. Improving routes.srt
│ ├─4. Connecting from Vue to Go – the first try.en.srt
│ ├─4. Connecting from Vue to Go – the first try.mp4
│ ├─4. Connecting from Vue to Go – the first try.srt
│ ├─5. Implementing CORS in our routes.go file.en.srt
│ ├─5. Implementing CORS in our routes.go file.mp4
│ ├─5. Implementing CORS in our routes.go file.srt
│ ├─5.2 chi cors on GitHub.html
│ ├─5.3 Wikipedia entry for CORS.html
│ ├─6. Connecting from Vue to Go – the second try.en.srt
│ ├─6. Connecting from Vue to Go – the second try.mp4
│ ├─6. Connecting from Vue to Go – the second try.srt
│ ├─7. ReadJSON and WriteJSON helper functions.en.srt
│ ├─7. ReadJSON and WriteJSON helper functions.mp4
│ ├─7. ReadJSON and WriteJSON helper functions.srt
│ ├─8. Simplifying our handlers to use the new helper functions.en.srt
│ ├─8. Simplifying our handlers to use the new helper functions.mp4
│ ├─8. Simplifying our handlers to use the new helper functions.srt
│ ├─9. Adding a helper function to generate error messages.en.srt
│ ├─9. Adding a helper function to generate error messages.mp4
│ ├─9. Adding a helper function to generate error messages.srt
│ ├─api-source
│ │ ├─docker-compose.yml
│ │ ├─go.mod
│ │ ├─go.sum
│ │ ├─Makefile
│ │ ├─Makefile.mac
│ │ ├─Makefile.windows
│ │ ├─cmd
│ │ │ └─api
│ │ │ │ ├─handlers.go
│ │ │ │ ├─helpers.go
│ │ │ │ ├─main.go
│ │ │ │ ├─middleware.go
│ │ │ │ ├─routes.go
│ │ │ │ ├─routes_test.go
│ │ │ │ ├─setup_test.go
│ │ ├─internal
│ │ │ ├─data
│ │ │ │ ├─books.go
│ │ │ │ ├─models.go
│ │ │ └─driver
│ │ │ │ ├─driver.go
│ │ └─static
│ │ │ └─covers
│ │ │ │ ├─a-connecticut-yankee-in-king-arthur-s-court.jpg
│ │ │ │ ├─it.jpg
│ │ │ │ ├─salems-lot.jpg
│ │ │ │ ├─the-dead-zone.jpg
│ │ │ │ ├─the-gunslinger.jpg
│ │ │ │ ├─the-shining.jpg
│ │ │ │ ├─the-stand.jpg
│ │ │ │ ├─title.jpg
│ ├─source
│ │ ├─babel.config.js
│ │ ├─package-lock.json
│ │ ├─package.json
│ │ ├─README.md
│ │ ├─public
│ │ │ ├─favicon.ico
│ │ │ ├─index.html
│ │ └─src
│ │ │ ├─App.vue
│ │ │ ├─main.js
│ │ │ ├─assets
│ │ │ │ ├─book-and-glasses.png
│ │ │ │ ├─logo.png
│ │ │ ├─components
│ │ │ │ ├─Body.vue
│ │ │ │ ├─Footer.vue
│ │ │ │ ├─Header.vue
│ │ │ │ ├─Login.vue
│ │ │ │ └─forms
│ │ │ │ │ ├─CheckInput.vue
│ │ │ │ │ ├─FormTag.vue
│ │ │ │ │ ├─SelectInput.vue
│ │ │ │ │ ├─TextInput.vue
│ │ │ └─router
│ │ │ │ ├─index.js
│ └─vue-api
│ │ ├─go.mod
│ │ ├─go.sum
│ │ └─cmd
│ │ │ └─api
│ │ │ │ ├─handlers.go
│ │ │ │ ├─helpers.go
│ │ │ │ ├─main.go
│ │ │ │ ├─routes.go
├─6. Authentication
│ ├─1. Setting up a database with Docker.en.srt
│ ├─1. Setting up a database with Docker.mp4
│ ├─1. Setting up a database with Docker.srt
│ ├─1.1 Docker Desktop download.html
│ ├─2. Choosing a Postgres client.en.srt
│ ├─2. Choosing a Postgres client.mp4
│ ├─2. Choosing a Postgres client.srt
│ ├─2.1 Beekeeper Studio Postgres client.html
│ ├─3. Trying out Beekeeper and setting up a users table.en.srt
│ ├─3. Trying out Beekeeper and setting up a users table.mp4
│ ├─3. Trying out Beekeeper and setting up a users table.srt
│ ├─4. Creating a database driver package.en.srt
│ ├─4. Creating a database driver package.mp4
│ ├─4. Creating a database driver package.srt
│ ├─4.2 pgx on GitHub.html
│ ├─5. Connecting to the database using our driver package.en.srt
│ ├─5. Connecting to the database using our driver package.mp4
│ ├─5. Connecting to the database using our driver package.srt
│ ├─6. Using a Makefile to simplify our lives.en.srt
│ ├─6. Using a Makefile to simplify our lives.mp4
│ ├─6. Using a Makefile to simplify our lives.srt
│ ├─7. Setting up a User model.en.srt
│ ├─7. Setting up a User model.mp4
│ ├─7. Setting up a User model.srt
│ ├─8. Setting up the tokens table.en.srt
│ ├─8. Setting up the tokens table.mp4
│ ├─8. Setting up the tokens table.srt
│ ├─9. Setting up a Token model.en.srt
│ ├─9. Setting up a Token model.mp4
│ ├─9. Setting up a Token model.srt
│ ├─10. How we will write database functions for authentication.en.srt
│ ├─10. How we will write database functions for authentication.mp4
│ ├─10. How we will write database functions for authentication.srt
│ ├─11. Manually adding a user to the database.en.srt
│ ├─11. Manually adding a user to the database.mp4
│ ├─11. Manually adding a user to the database.srt
│ ├─11.1 Generating a password hash on the Go Playground.html
│ ├─12. Creating a test route and handler to try things out.en.srt
│ ├─12. Creating a test route and handler to try things out.mp4
│ ├─12. Creating a test route and handler to try things out.srt
│ ├─13. Writing methods to get a user by email or id.en.srt
│ ├─13. Writing methods to get a user by email or id.mp4
│ ├─13. Writing methods to get a user by email or id.srt
│ ├─14. Writing methods to update and delete users.en.srt
│ ├─14. Writing methods to update and delete users.mp4
│ ├─14. Writing methods to update and delete users.srt
│ ├─15. Writing the Insert method for the User type.en.srt
│ ├─15. Writing the Insert method for the User type.mp4
│ ├─15. Writing the Insert method for the User type.srt
│ ├─16. Writing the Password reset and PasswordMatches functions for the User type.en.srt
│ ├─16. Writing the Password reset and PasswordMatches functions for the User type.mp4
│ ├─16. Writing the Password reset and PasswordMatches functions for the User type.srt
│ ├─17. Getting started with methods for the Token type.en.srt
│ ├─17. Getting started with methods for the Token type.mp4
│ ├─17. Getting started with methods for the Token type.srt
│ ├─18. Generating and authenticating a token.en.srt
│ ├─18. Generating and authenticating a token.mp4
│ ├─18. Generating and authenticating a token.srt
│ ├─19. Inserting and deleting tokens.en.srt
│ ├─19. Inserting and deleting tokens.mp4
│ ├─19. Inserting and deleting tokens.srt
│ ├─20. Adding a ValidToken method to the Token type.en.srt
│ ├─20. Adding a ValidToken method to the Token type.mp4
│ ├─20. Adding a ValidToken method to the Token type.srt
│ ├─21. Trying out the database functions adding a user.en.srt
│ ├─21. Trying out the database functions adding a user.mp4
│ ├─21. Trying out the database functions adding a user.srt
│ ├─22. Trying out generating a token.en.srt
│ ├─22. Trying out generating a token.mp4
│ ├─22. Trying out generating a token.srt
│ ├─23. Trying out the Token type's Insert function.en.srt
│ ├─23. Trying out the Token type's Insert function.mp4
│ ├─23. Trying out the Token type's Insert function.srt
│ ├─24. Trying out the ValidToken function.en.srt
│ ├─24. Trying out the ValidToken function.mp4
│ ├─24. Trying out the ValidToken function.srt
│ ├─25. Adding a unique constraint to the users table.en.srt
│ ├─25. Adding a unique constraint to the users table.mp4
│ ├─25. Adding a unique constraint to the users table.srt
│ ├─26. Checking for database errors in errorJSON.en.srt
│ ├─26. Checking for database errors in errorJSON.mp4
│ ├─26. Checking for database errors in errorJSON.srt
│ ├─26.2 Postgresql Error Codes.html
│ ├─27. Improving our jsonResponse type with an envelope.en.srt
│ ├─27. Improving our jsonResponse type with an envelope.mp4
│ ├─27. Improving our jsonResponse type with an envelope.srt
│ ├─docker-compose.yml
│ ├─Makefile.mac
│ ├─Makefile.windows
│ └─api-source
│ │ ├─docker-compose.yml
│ │ ├─go.mod
│ │ ├─go.sum
│ │ ├─Makefile
│ │ ├─Makefile.mac
│ │ ├─Makefile.windows
│ │ ├─cmd
│ │ │ └─api
│ │ │ │ ├─coverage.out
│ │ │ │ ├─handlers.go
│ │ │ │ ├─handlers_test.go
│ │ │ │ ├─helpers.go
│ │ │ │ ├─helpers_test.go
│ │ │ │ ├─main.go
│ │ │ │ ├─middleware.go
│ │ │ │ ├─routes.go
│ │ │ │ ├─routes_test.go
│ │ │ │ ├─setup_test.go
│ │ ├─internal
│ │ │ ├─data
│ │ │ │ ├─books.go
│ │ │ │ ├─models.go
│ │ │ │ ├─models_test.go
│ │ │ │ ├─setup_test.go
│ │ │ └─driver
│ │ │ │ ├─driver.go
│ │ └─static
│ │ │ └─covers
│ │ │ │ ├─a-connecticut-yankee-in-king-arthur-s-court.jpg
│ │ │ │ ├─it.jpg
│ │ │ │ ├─salems-lot.jpg
│ │ │ │ ├─the-dead-zone.jpg
│ │ │ │ ├─the-gunslinger.jpg
│ │ │ │ ├─the-shining.jpg
│ │ │ │ ├─the-stand.jpg
│ │ │ │ ├─title.jpg
├─7. Authentication from Vue to the Go Back End
│ ├─1. Updating our Login handler.en.srt
│ ├─1. Updating our Login handler.mp4
│ ├─1. Updating our Login handler.srt
│ ├─2. Updating the Vue front end to connect to usersauth and get a token.en.srt
│ ├─2. Updating the Vue front end to connect to usersauth and get a token.mp4
│ ├─2. Updating the Vue front end to connect to usersauth and get a token.srt
│ ├─2.2 Usage of v-model with components.html
│ ├─3. Trying out authentication.en.srt
│ ├─3. Trying out authentication.mp4
│ ├─3. Trying out authentication.srt
│ ├─4. Sharing data between components using a simple store.en.srt
│ ├─4. Sharing data between components using a simple store.mp4
│ ├─4. Sharing data between components using a simple store.srt
│ ├─4.2 State Management with Vue.html
│ ├─5. Improving the login process.en.srt
│ ├─5. Improving the login process.mp4
│ ├─5. Improving the login process.srt
│ ├─5.1 notie.js on GitHub.html
│ ├─6. Logging out.en.srt
│ ├─6. Logging out.mp4
│ ├─6. Logging out.srt
│ ├─7. Deleting a user's token on the back end on logout.en.srt
│ ├─7. Deleting a user's token on the back end on logout.mp4
│ ├─7. Deleting a user's token on the back end on logout.srt
│ ├─8. Making the request to delete a token from the front end.en.srt
│ ├─8. Making the request to delete a token from the front end.mp4
│ ├─8. Making the request to delete a token from the front end.srt
│ ├─9. Saving the token as a cookie.en.srt
│ ├─9. Saving the token as a cookie.mp4
│ ├─9. Saving the token as a cookie.srt
│ ├─10. Finishing up the improved login process.en.srt
│ ├─10. Finishing up the improved login process.mp4
│ ├─10. Finishing up the improved login process.srt
│ ├─11. An aside speeding things up when writing JSON in production.en.srt
│ ├─11. An aside speeding things up when writing JSON in production.mp4
│ ├─11. An aside speeding things up when writing JSON in production.srt
├─8. Protecting Routes and managing site content
│ ├─1. Protecting routes.en.srt
│ ├─1. Protecting routes.mp4
│ ├─1. Protecting routes.srt
│ ├─2. Trying out our route protection middleware.en.srt
│ ├─2. Trying out our route protection middleware.mp4
│ ├─2. Trying out our route protection middleware.srt
│ ├─3. Setting up stub components and routes.en.srt
│ ├─3. Setting up stub components and routes.mp4
│ ├─3. Setting up stub components and routes.srt
│ ├─4. Updating the Header component to link to our stub components.en.srt
│ ├─4. Updating the Header component to link to our stub components.mp4
│ ├─4. Updating the Header component to link to our stub components.srt
│ ├─5. Another aside setting environment variables with a .env file.en.srt
│ ├─5. Another aside setting environment variables with a .env file.mp4
│ ├─5. Another aside setting environment variables with a .env file.srt
│ ├─6. Extracting authentication logic and security to a separate module.en.srt
│ ├─6. Extracting authentication logic and security to a separate module.mp4
│ ├─6. Extracting authentication logic and security to a separate module.srt
│ ├─7. Using our new Security JavaScript module.en.srt
│ ├─7. Using our new Security JavaScript module.mp4
│ ├─7. Using our new Security JavaScript module.srt
│ ├─8. Securing routes to protected components.en.srt
│ ├─8. Securing routes to protected components.mp4
│ ├─8. Securing routes to protected components.srt
│ ├─9. Getting a list of all users from the back end API.en.srt
│ ├─9. Getting a list of all users from the back end API.mp4
│ ├─9. Getting a list of all users from the back end API.srt
│ ├─10. Displaying the list of all users.en.srt
│ ├─10. Displaying the list of all users.mp4
│ ├─10. Displaying the list of all users.srt
│ ├─11. Getting started with the UserEdit Vue component.en.srt
│ ├─11. Getting started with the UserEdit Vue component.mp4
│ ├─11. Getting started with the UserEdit Vue component.srt
│ ├─12. Completing changes on the front end to submit a user to the back end.en.srt
│ ├─12. Completing changes on the front end to submit a user to the back end.mp4
│ ├─12. Completing changes on the front end to submit a user to the back end.srt
│ ├─13. Setting up the handler and route to save and update a user.en.srt
│ ├─13. Setting up the handler and route to save and update a user.mp4
│ ├─13. Setting up the handler and route to save and update a user.srt
│ ├─14. Trying out adding a user to the system.en.srt
│ ├─14. Trying out adding a user to the system.mp4
│ ├─14. Trying out adding a user to the system.srt
│ ├─15. Editing an existing user.en.srt
│ ├─15. Editing an existing user.mp4
│ ├─15. Editing an existing user.srt
│ ├─16. Trying out our updated code to edit a user.en.srt
│ ├─16. Trying out our updated code to edit a user.mp4
│ ├─16. Trying out our updated code to edit a user.srt
│ ├─17. Deleting a user.en.srt
│ ├─17. Deleting a user.mp4
│ ├─17. Deleting a user.srt
│ ├─18. Listening for emitted events in order to simplify user notificiations.en.srt
│ ├─18. Listening for emitted events in order to simplify user notificiations.mp4
│ ├─18. Listening for emitted events in order to simplify user notificiations.srt
│ ├─19. Emitting notie related events.en.srt
│ ├─19. Emitting notie related events.mp4
│ ├─19. Emitting notie related events.srt
│ ├─20. Checking for ready status when fetching.en.srt
│ ├─20. Checking for ready status when fetching.mp4
│ ├─20. Checking for ready status when fetching.srt
│ ├─21. Adding a status column to show whether a user is logged in or not.en.srt
│ ├─21. Adding a status column to show whether a user is logged in or not.mp4
│ ├─21. Adding a status column to show whether a user is logged in or not.srt
│ ├─22. Updating the back end to handle logging a user out.en.srt
│ ├─22. Updating the back end to handle logging a user out.mp4
│ ├─22. Updating the back end to handle logging a user out.srt
│ ├─23. Adding a handler to log the user out.en.srt
│ ├─23. Adding a handler to log the user out.mp4
│ ├─23. Adding a handler to log the user out.srt
│ ├─24. Updating the front end to log a user out.en.srt
│ ├─24. Updating the front end to log a user out.mp4
│ ├─24. Updating the front end to log a user out.srt
│ ├─25. Finishing up updates to the front end.en.srt
│ ├─25. Finishing up updates to the front end.mp4
│ ├─25. Finishing up updates to the front end.srt
│ ├─26. Re-render component Updating the list of users after logging someone out.en.srt
│ ├─26. Re-render component Updating the list of users after logging someone out.mp4
│ ├─26. Re-render component Updating the list of users after logging someone out.srt
│ ├─27. Checking status of token on every request.en.srt
│ ├─27. Checking status of token on every request.mp4
│ ├─27. Checking status of token on every request.srt
│ ├─28. Trying out our ValidateToken handler and Security.checkToken() functionality..en.srt
│ ├─28. Trying out our ValidateToken handler and Security.checkToken() functionality..mp4
│ ├─28. Trying out our ValidateToken handler and Security.checkToken() functionality..srt
├─9. Setting up the Books Catalogue
│ ├─1. Adding database tables for Books, Authors, and Genres.en.srt
│ ├─1. Adding database tables for Books, Authors, and Genres.mp4
│ ├─1. Adding database tables for Books, Authors, and Genres.srt
│ ├─2. Inserting data, and reviewing the new code.en.srt
│ ├─2. Inserting data, and reviewing the new code.mp4
│ ├─2. Inserting data, and reviewing the new code.srt
│ ├─3. Getting started with listing all books.en.srt
│ ├─3. Getting started with listing all books.mp4
│ ├─3. Getting started with listing all books.srt
│ ├─4. Getting started displaying books on the front end.en.srt
│ ├─4. Getting started displaying books on the front end.mp4
│ ├─4. Getting started displaying books on the front end.srt
│ ├─5. Adding genres to the books and filtering by genre.en.srt
│ ├─5. Adding genres to the books and filtering by genre.mp4
│ ├─5. Adding genres to the books and filtering by genre.srt
│ ├─6. Improving our filter by adding a TransitionGroup.en.srt
│ ├─6. Improving our filter by adding a TransitionGroup.mp4
│ ├─6. Improving our filter by adding a TransitionGroup.srt
│ ├─6.1 Documentation for Transition compoment.html
│ ├─6.2 Documentation for TransitionGroup component.html
│ ├─7. Displaying individual books.en.srt
│ ├─7. Displaying individual books.mp4
│ ├─7. Displaying individual books.srt
│ ├─8. Saving the state of the Books component.en.srt
│ ├─8. Saving the state of the Books component.mp4
│ ├─8. Saving the state of the Books component.srt
│ ├─9. Listing all books for adminstrators.en.srt
│ ├─9. Listing all books for adminstrators.mp4
│ ├─9. Listing all books for adminstrators.srt
│ ├─10. Simplifying which components are cached, or kept alive.en.srt
│ ├─10. Simplifying which components are cached, or kept alive.mp4
│ ├─10. Simplifying which components are cached, or kept alive.srt
│ ├─10.1 KeepAlive documentation.html
│ ├─11. Adding a book – part one.en.srt
│ ├─11. Adding a book – part one.mp4
│ ├─11. Adding a book – part one.srt
│ ├─12. Adding a book – part two.en.srt
│ ├─12. Adding a book – part two.mp4
│ ├─12. Adding a book – part two.srt
│ ├─13. Adding a book – part 3.en.srt
│ ├─13. Adding a book – part 3.mp4
│ ├─13. Adding a book – part 3.srt
│ ├─14. Getting the list of authors from the back end API.en.srt
│ ├─14. Getting the list of authors from the back end API.mp4
│ ├─14. Getting the list of authors from the back end API.srt
│ ├─15. Populating the select in our BookEdit Vue component with JSON from the back end.en.srt
│ ├─15. Populating the select in our BookEdit Vue component with JSON from the back end.mp4
│ ├─15. Populating the select in our BookEdit Vue component with JSON from the back end.srt
│ ├─16. Writing the EditBook handler.en.srt
│ ├─16. Writing the EditBook handler.mp4
│ ├─16. Writing the EditBook handler.srt
│ ├─17. Trying out inserting a book on the front end.en.srt
│ ├─17. Trying out inserting a book on the front end.mp4
│ ├─17. Trying out inserting a book on the front end.srt
│ ├─18. Editing a book.en.srt
│ ├─18. Editing a book.mp4
│ ├─18. Editing a book.srt
│ ├─19. Deleting a book.en.srt
│ ├─19. Deleting a book.mp4
│ ├─19. Deleting a book.srt
│ ├─a-connecticut-yankee-in-king-arthur-s-court.jpg
│ ├─books-authors-genres.sql
│ ├─books.go
│ ├─inserts.sql
│ ├─__MACOSX
│ │ ├─_a-connecticut-yankee-in-king-arthur-s-court.jpg
│ │ ├─api-source
│ │ │ ├─cmd
│ │ │ └─static
│ │ │ │ └─covers
│ │ │ │ │ ├─_it.jpg
│ │ │ │ │ ├─_salems-lot.jpg
│ │ │ │ │ ├─_the-dead-zone.jpg
│ │ │ │ │ ├─_the-gunslinger.jpg
│ │ │ │ │ ├─_the-shining.jpg
│ │ │ │ │ ├─_the-stand.jpg
│ │ ├─book covers
│ │ │ ├─_it.jpg
│ │ │ ├─_salems-lot.jpg
│ │ │ ├─_the-dead-zone.jpg
│ │ │ ├─_the-gunslinger.jpg
│ │ │ ├─_the-shining.jpg
│ │ │ ├─_the-stand.jpg
│ │ ├─source
│ │ │ └─src
│ │ │ │ └─assets
│ │ │ │ │ ├─_book-and-glasses.png
│ │ └─vue-course
│ ├─api-source
│ │ ├─docker-compose.yml
│ │ ├─go.mod
│ │ ├─go.sum
│ │ ├─Makefile
│ │ ├─Makefile.mac
│ │ ├─Makefile.windows
│ │ ├─cmd
│ │ │ └─api
│ │ │ │ ├─handlers.go
│ │ │ │ ├─handlers_test.go
│ │ │ │ ├─helpers.go
│ │ │ │ ├─helpers_test.go
│ │ │ │ ├─main.go
│ │ │ │ ├─middleware.go
│ │ │ │ ├─routes.go
│ │ │ │ ├─routes_test.go
│ │ │ │ ├─setup_test.go
│ │ ├─internal
│ │ │ ├─data
│ │ │ │ ├─books.go
│ │ │ │ ├─models.go
│ │ │ │ ├─models_test.go
│ │ │ │ ├─setup_test.go
│ │ │ └─driver
│ │ │ │ ├─driver.go
│ │ └─static
│ │ │ └─covers
│ │ │ │ ├─a-connecticut-yankee-in-king-arthur-s-court.jpg
│ │ │ │ ├─it.jpg
│ │ │ │ ├─salems-lot.jpg
│ │ │ │ ├─the-dead-zone.jpg
│ │ │ │ ├─the-gunslinger.jpg
│ │ │ │ ├─the-shining.jpg
│ │ │ │ ├─the-stand.jpg
│ │ │ │ ├─title.jpg
│ ├─book covers
│ │ ├─it.jpg
│ │ ├─salems-lot.jpg
│ │ ├─the-dead-zone.jpg
│ │ ├─the-gunslinger.jpg
│ │ ├─the-shining.jpg
│ │ ├─the-stand.jpg
│ ├─source
│ │ ├─babel.config.js
│ │ ├─env
│ │ ├─package-lock.json
│ │ ├─package.json
│ │ ├─README.md
│ │ ├─public
│ │ │ ├─favicon.ico
│ │ │ ├─index.html
│ │ └─src
│ │ │ ├─App.vue
│ │ │ ├─main.js
│ │ │ ├─assets
│ │ │ │ ├─book-and-glasses.png
│ │ │ │ ├─logo.png
│ │ │ ├─components
│ │ │ │ ├─Body.vue
│ │ │ │ ├─Book.vue
│ │ │ │ ├─BookComposition.vue
│ │ │ │ ├─BookEdit.vue
│ │ │ │ ├─Books.vue
│ │ │ │ ├─BooksAdmin.vue
│ │ │ │ ├─BooksComposition.vue
│ │ │ │ ├─Footer.vue
│ │ │ │ ├─Header.vue
│ │ │ │ ├─Login.vue
│ │ │ │ ├─LoginComposition.vue
│ │ │ │ ├─security.js
│ │ │ │ ├─store.js
│ │ │ │ ├─UserEdit.vue
│ │ │ │ ├─Users.vue
│ │ │ │ └─forms
│ │ │ │ │ ├─CheckInput.vue
│ │ │ │ │ ├─FormTag.vue
│ │ │ │ │ ├─SelectInput.vue
│ │ │ │ │ ├─TextInput.vue
│ │ │ └─router
│ │ │ │ ├─index.js
│ └─vue-course
│ │ ├─favicon.ico
│ │ ├─fetch.html
│ │ ├─forms.js
│ │ ├─index.html
│ │ ├─registration-form.js
│ │ ├─registration.html
├─10. Testing the Back End
│ ├─1. Setting up the test environment.en.srt
│ ├─1. Setting up the test environment.mp4
│ ├─1. Setting up the test environment.srt
│ ├─2. Testing Routes.en.srt
│ ├─2. Testing Routes.mp4
│ ├─2. Testing Routes.srt
│ ├─3. Testing Handlers.en.srt
│ ├─3. Testing Handlers.mp4
│ ├─3. Testing Handlers.srt
│ ├─4. Testing readJSON and writeJSON.en.srt
│ ├─4. Testing readJSON and writeJSON.mp4
│ ├─4. Testing readJSON and writeJSON.srt
│ ├─5. Testing errorJSON.en.srt
│ ├─5. Testing errorJSON.mp4
│ ├─5. Testing errorJSON.srt
│ ├─6. Improving our errorJSON test.en.srt
│ ├─6. Improving our errorJSON test.mp4
│ ├─6. Improving our errorJSON test.srt
│ ├─7. Integration testing.en.srt
│ ├─7. Integration testing.mp4
│ ├─7. Integration testing.srt
│ ├─setup_test.go
├─11. Using the Composition API
│ ├─1. What is the Composition API.en.srt
│ ├─1. What is the Composition API.mp4
│ ├─1. What is the Composition API.srt
│ ├─1.1 Why use the composition API on vuejs.org.html
│ ├─2. Converting the Books component to use the Composition API.en.srt
│ ├─2. Converting the Books component to use the Composition API.mp4
│ ├─2. Converting the Books component to use the Composition API.srt
│ ├─3. Converting the Book component to the Composition API.en.srt
│ ├─3. Converting the Book component to the Composition API.mp4
│ ├─3. Converting the Book component to the Composition API.srt
│ ├─4. Converting the Login component to use the Composition API.en.srt
│ ├─4. Converting the Login component to use the Composition API.mp4
│ ├─4. Converting the Login component to use the Composition API.srt
├─12. Making the Site Live
│ ├─1. Updating dependencies.en.srt
│ ├─1. Updating dependencies.mp4
│ ├─1. Updating dependencies.srt
│ ├─1.1 Warnings and deprecations on Vue's GitHub repository.html
│ ├─2. Updating the .env.en.srt
│ ├─2. Updating the .env.mp4
│ ├─2. Updating the .env.srt
│ ├─2.1 Modes and environment variables for the Vue Router.html
│ ├─3. Running npm run build to get the production version of our project.en.srt
│ ├─3. Running npm run build to get the production version of our project.mp4
│ ├─3. Running npm run build to get the production version of our project.srt
│ ├─4. Spinning up a docker image with our production build.en.srt
│ ├─4. Spinning up a docker image with our production build.mp4
│ ├─4. Spinning up a docker image with our production build.srt
│ ├─4.2 Server configs on router.vuejs.org.html
│ ├─Caddyfile
│ ├─docker-compose.yml
│ ├─__MACOSX
│ │ └─source
│ │ │ └─src
│ │ │ │ └─assets
│ │ │ │ │ ├─_book-and-glasses.png
│ └─source
│ │ ├─babel.config.js
│ │ ├─Caddyfile
│ │ ├─docker-compose.yml
│ │ ├─env
│ │ ├─package-lock.json
│ │ ├─package.json
│ │ ├─README.md
│ │ ├─public
│ │ │ ├─favicon.ico
│ │ │ ├─index.html
│ │ └─src
│ │ │ ├─App.vue
│ │ │ ├─main.js
│ │ │ ├─assets
│ │ │ │ ├─book-and-glasses.png
│ │ │ │ ├─logo.png
│ │ │ ├─components
│ │ │ │ ├─Body.vue
│ │ │ │ ├─Book.vue
│ │ │ │ ├─BookComposition.vue
│ │ │ │ ├─BookEdit.vue
│ │ │ │ ├─Books.vue
│ │ │ │ ├─BooksAdmin.vue
│ │ │ │ ├─BooksComposition.vue
│ │ │ │ ├─Footer.vue
│ │ │ │ ├─Header.vue
│ │ │ │ ├─Login.vue
│ │ │ │ ├─LoginComposition.vue
│ │ │ │ ├─security.js
│ │ │ │ ├─store.js
│ │ │ │ ├─UserEdit.vue
│ │ │ │ ├─Users.vue
│ │ │ │ └─forms
│ │ │ │ │ ├─CheckInput.vue
│ │ │ │ │ ├─FormTag.vue
│ │ │ │ │ ├─SelectInput.vue
│ │ │ │ │ ├─TextInput.vue
│ │ │ └─router
│ │ │ │ ├─index.js
└─13. Final thoughts and suggestions
│ ├─1. Where to go from here.en.srt
│ ├─1. Where to go from here.mp4
│ ├─1. Where to go from here.srt
│ ├─1.1 Nuxt.js.html
│ ├─1.2 Pinia.html
│ ├─1.3 Server Side Rendering.html
│ ├─1.4 UI Libraries.html
提取码
extensio












暂无评论内容