Vue - The Complete Guide (incl. Router & Composition API)

28h 45m 29s
English
Paid

Course description

Learn Vue.js - in its latest version - step by step from the ground up. Learn how to build highly reactive web apps with one of the most popular frameworks!

Read more about the course

No matter at which metric you look at (Google Trends, Github Stars, Tweets ...) - VueJS is the shooting star in the world of JavaScript frameworks - it simply is amazing!

This course teaches the latest version of Vue (Vue.js 3) from the ground up and in great detail. We'll cover all the core basics but we'll not stop thereafter - this course also dives into advanced concepts like the Composition API introduced with Vue 3.

Frontend frameworks are extremely popular because they give us this reactive, great user experience we know from mobile apps - but now in the browser! No wonder that jobs requiring frontend framework skills like VueJS are amongst the best paid ones in the industry!

You may know Angular 2+ and ReactJS, well, VueJS combines the best of both frameworks and makes building anything from small widgets to big, enterprise-level apps a breeze and a whole lot of fun!

And if you don't know the two mentioned frameworks: That's fine, too, this course does not expect any knowledge of any other frontend framework - you will learn it all throughout this Course!

This course covers it all!

We'll start at the very basics, what Vue.js is and how it works before we move on to more complex and advanced topics but I'll be honest: It's too much to fit it all into one sentence, so here's what you'll learn in this Course:

  • What is VueJS and Why would you use it?
  • The Basics (including the basic Syntax, Understanding Templates and much more!)
  • How to Output Reactive Data & Listen to Events
  • Interacting with DOM (Rendering Lists, Conditionally attaching/ detaching Elements ...)
  • Setting up a Development Environment and Workflow
  • Using Components (and what Components are to begin with)
  • Deep Dive Look Behind the Scenes of Vue
  • Binding to Form Inputs
  • Sending Http Requests to Backend APIs
  • Authentication & Vue
  • How to make your App more Beautiful with Animations and Transitions
  • How to create an awesome Single-Page-Application (SPA) with Routing
  • How to improve State Management by using Vuex
  • How to Deploy the App
  • And much more ...

All these topics are taught with real examples and demo projects. This course is full of exercises, challenges and bigger courser projects that allow you to practice what you learned.

Along with many other smaller projects, we will build a couple of bigger main projects:

  • The "Monster Slayer" Game - a game running in the browser, 100% powered by Vue
  • The "Learning Resource Manager" - a web app that allows you to manage (add, delete, list) your favorite learning resources
  • The "Find a Coach" app - a web app that allows you to sign up / login, register as a coach, list and filter available coaches and send messages to coaches

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 294 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Vue - The Complete Guide (incl. Router & Composition API)

0:00
/
#1: Welcome to the Course!

All Course Lessons (294)

#Lesson TitleDurationAccess
1
Welcome to the Course! Demo
01:40
2
What is "Vue.js"?
07:52
3
Different Ways of Using Vue
02:36
4
Exploring Vue Alternatives
03:12
5
Building A First App With Just JavaScript
07:27
6
Re-building the App with Vue
11:40
7
Vue vs "Vanilla JavaScript" (just JavaScript)
01:11
8
Setting Up the Course Development Environment
02:05
9
Course Outline & What's In The Course
02:59
10
How To Get The Most Out Of This Course
03:24
11
Module Introduction
00:49
12
Creating and Connecting Vue App Instances
08:41
13
Interpolation and Data Binding
03:36
14
Binding Attributes with the "v-bind" Directive
05:38
15
Understanding "methods" in Vue Apps
05:48
16
Working with Data inside of a Vue App
03:24
17
Outputting Raw HTML Content with v-html
03:32
18
A First Summary
04:13
19
Understanding Event Binding
07:18
20
Events & Methods
06:13
21
Working with Event Arguments
03:00
22
Using the Native Event Object
09:00
23
Exploring Event Modifiers
09:55
24
Locking Content with v-once
02:09
25
Data Binding + Event Binding = Two-Way Binding
06:33
26
Methods used for Data Binding: How It Works
06:47
27
Introducing Computed Properties
05:59
28
Working with Watchers
10:50
29
Methods vs Computed Properties vs Watchers
02:28
30
v-bind and v-on Shorthands
01:54
31
Dynamic Styling with Inline Styles
07:20
32
Adding CSS Classes Dynamically
06:32
33
Classes & Computed Properties
01:58
34
Dynamic Classes: Array Syntax
01:23
35
Module Summary
04:28
36
Module Introduction
01:36
37
Understanding the Problem
03:17
38
Rendering Content Conditionally
05:10
39
v-if, v-else and v-else-if
04:19
40
Using v-show Instead Of v-if
02:26
41
Rendering Lists of Data
06:21
42
Diving Deeper Into v-for
05:13
43
Removing List Items
04:00
44
Lists & Keys
08:27
45
Module Summary
02:16
46
Module Introduction
01:19
47
Project Setup & First Methods
12:28
48
Updating the Health Bars
07:08
49
Adding a "Special Attack"
06:24
50
Adding a "Heal" Functionality
04:48
51
Adding a "Game Over" Screen
09:39
52
Finishing the Core Functionality
06:09
53
Adding a Battle Log
14:12
54
Module Introduction
01:32
55
An Introduction to Vue's Reactivity
04:27
56
Vue Reactivity: A Deep Dive
08:11
57
One App vs Multiple Apps
03:54
58
Understanding Templates
03:57
59
Working with Refs
05:23
60
How Vue Updates the DOM
06:27
61
Vue App Lifecycle - Theory
04:47
62
Vue App Lifecycle - Practice
09:49
63
Module Introduction
01:31
64
Understanding the Problem
08:40
65
Introducing Components
10:55
66
The Why: Building Complex User Interfaces With Components
01:01
67
Module Introduction
01:36
68
Why We Need A Development Server
03:30
69
Why We Want A Better Developer Experience
05:51
70
Installing & Using the Vue CLI
08:28
71
Inspecting the Created Project
06:00
72
Inspecting the Vue Code & ".vue" Files
06:05
73
Adding the "Vetur" Extension to VS Code
01:16
74
More on ".vue" Files
01:41
75
A New Vue Project
05:06
76
Creating a Basic Vue App
09:33
77
Adding a Component
08:15
78
Adding Styling
02:17
79
Module Introduction
01:42
80
Introducing "Props" (Parent => Child Communication)
10:04
81
Prop Behavior & Changing Props
06:31
82
Validating Props
07:15
83
Working with Dynamic Prop Values
05:38
84
Emitting Custom Events (Child => Parent Communication)
11:16
85
Defining & Validating Custom Events
04:06
86
Demo: Adding Components & Connecting Them
13:16
87
Demo: Adding More Component Communication
06:25
88
A Potential Problem
06:27
89
Provide + Inject To The Rescue
08:17
90
Provide + Inject for Functions / Methods
04:00
91
Provide + Inject vs Props & Custom Events
02:07
92
Module Summary
04:45
93
Module Introduction
01:39
94
Project Setup
02:39
95
Global vs Local Components
09:23
96
Scoped Styles
05:16
97
Introducing Slots
06:25
98
Named Slots
05:36
99
Slot Styles & Compilation
02:27
100
More on Slots
07:20
101
Scoped Slots
09:35
102
Dynamic Components
07:08
103
Keeping Dynamic Components Alive
02:45
104
Applying What We Know & A Problem
09:25
105
Teleporting Elements
03:51
106
Working with Fragments
01:24
107
The Vue Style Guide
03:03
108
Moving to a Different Folder Structure
02:57
109
Module Summary
03:39
110
Module Introduction
01:38
111
Setup & First Steps
05:25
112
First Components & Props
10:47
113
Styling and More Components
07:20
114
Header & BaseCard Components
07:01
115
Adding a Base Button
05:20
116
Dynamic Components & Attribute Fallthrough
08:39
117
Adding & Styling Tabs
04:59
118
Adding a Form
04:13
119
Fetching User Input
08:28
120
Adding a Modal Dialog
12:20
121
Deleting Items
06:43
122
Adding "Teleport"
01:30
123
Module Introduction
00:34
124
v-model & Inputs
06:04
125
Working with v-model Modifiers and Numbers
06:55
126
v-model and Dropdowns
02:27
127
Using v-model with Checkboxes & Radiobuttons
07:14
128
Adding Basic Form Validation
05:14
129
Building a Custom Control Component
06:28
130
Using v-model on Custom Components
06:49
131
Module Summary
01:15
132
Module Introduction
01:10
133
Starting App & Why we need a Backend
05:05
134
Adding a Backend
03:22
135
How To (Not) Send Http Requests
05:25
136
Sending a POST Request to Store Data
05:46
137
Getting Data (GET Request) & Transforming Response Data
09:52
138
Loading Data When a Component Mounts
02:01
139
Showing a "Loading..." Message
02:56
140
Handling the "No Data" State
03:01
141
Handling Technical / Browser-side Errors
06:43
142
Handling Error Responses
06:50
143
Module Summary
01:33
144
Module Introduction
00:42
145
What & Why?
04:40
146
Routing Setup
04:37
147
Registering & Rendering Routes
06:26
148
Navigating with router-link
04:56
149
Styling Active Links
03:06
150
Programmatic Navigation
04:02
151
Passing Data with Route Params (Dynamic Segments)
10:47
152
Navigation & Dynamic Paths
03:01
153
Updating Params Data with Watchers
05:32
154
Passing Params as Props
03:38
155
Redirecting & "Catch All" Routes
07:51
156
Using Nested Routes
05:35
157
More Fun with Named Routes & Location Objects
05:22
158
Using Query Params
04:00
159
Rendering Multiple Routes with Named Router Views
05:52
160
Controlling Scroll Behavior
06:18
161
Introducing Navigation Guards
07:32
162
Diving Deeper Into Navigation Guards
06:51
163
The Global "afterEach" Guard
01:28
164
Beyond Entering: Route Leave Guards
07:14
165
Utilizing Route Metadata
02:15
166
Organizing Route Files
04:50
167
Summary
02:13
168
Module Introduction
01:12
169
Animation Basics & CSS Transitions
07:29
170
Understanding CSS Animations
04:21
171
Why Is "Just CSS" Not Enough?
04:28
172
Playing CSS Animations with Vue's Help
04:47
173
Using the Transition Component
05:03
174
CSS Animations with the Transition Component
02:29
175
Using Custom CSS Class Names
03:35
176
Example: Animating a Modal
08:39
177
Transitioning Between Multiple Elements
09:16
178
Using Transition Events
08:32
179
Building JavaScript Transitions (instead of CSS)
14:58
180
Disabling CSS Transitions
03:06
181
Getting Started with Animated Lists
06:45
182
Animating Lists with "transition-group"
05:27
183
Animate List Item Movement
03:54
184
Animating Route Changes
12:16
185
Module Introduction
01:00
186
What & Why?
07:12
187
Creating & Using a Store
04:44
188
Connecting Components to State
02:37
189
Introducing Mutations - A Better Way of Changing Data
06:31
190
Passing Data to Mutations with Payloads
04:08
191
Introducing Getters - A Better Way Of Getting Data
07:42
192
Running Async Code with Actions
07:34
193
Understanding the Action "Context"
02:03
194
Using Mapper Helpers
05:58
195
Example: Adding More State
08:10
196
Organizing your Store with Modules
04:11
197
Understanding Local Module State
04:28
198
Namespacing Modules
05:04
199
Structuring Vuex Code & Files
08:45
200
A Challenge!
01:52
201
Challenge Solution (1/3)
12:01
202
Challenge Solution (2/3)
11:28
203
Challenge Solution (3/3)
03:19
204
Summary
01:20
205
Module Introduction
02:36
206
Planning the Project / Web App
04:27
207
Planning the Data Requirements
05:12
208
Planning the Layout / Components
05:07
209
Registering Routes
05:59
210
Adding Route Page Components
05:28
211
Working on the Main Layout & Styling
07:43
212
Wiring Up Pages
05:23
213
Adding Vuex and Coach Data
12:16
214
Working on the Coaches List and List Items
11:22
215
Adding a Couple of Base Components (Base Card, Base Button, Base Badge)
12:55
216
Building the Coach Detail Component
08:25
217
Filtering Coaches
11:11
218
Registering as a Coach: The Form
10:14
219
Adding Coaches to Vuex
13:38
220
Adding Form Validation
12:36
221
Working on the Contact Form
08:10
222
Storing Requests (Messages) With Vuex
08:32
223
Outputting Incoming Requests (Messages)
10:02
224
Filtering Requests for the Active Coach
04:46
225
Sending a PUT Http Request to Store Coach Data
11:06
226
Fetching Coach Data (GET Http Request)
07:52
227
Rendering a Loading Spinner
06:39
228
Adding Http Error Handling
09:19
229
Sending Coaching Requests Http Requests
15:49
230
Caching Http Response Data
08:30
231
Adding Route Transitions
10:21
232
The "Not Found" Page & Summary
02:20
233
Module Introduction
01:01
234
How Authentication Works in Vue Apps (or any SPA)
06:10
235
Locking / Protecting Backend Resources
05:57
236
Adding an Authentication Page (Login & Signup)
09:55
237
Preparing Vuex
04:23
238
Adding a "Signup" Action & Flow
09:06
239
Better UX: Loading Spinner & Error Handling
05:32
240
Adding a "Login" Action & Flow
03:16
241
Attaching the Token to Outgoing Requests
04:21
242
Updating the UI Based on Auth State
04:05
243
Adding a "Logout" Action & Flow
03:35
244
Authentication & Routing (incl. Navigation Guards)
11:42
245
Adding "Auto Login"
08:53
246
Adding "Auto Logout"
13:35
247
Summary
01:20
248
Module Introduction
01:11
249
What To Deploy?
02:51
250
Optimization: Using Asynchronous Components
12:17
251
Building the Project For Production
03:55
252
Deploying a Vue App
08:56
253
Module Introduction
02:01
254
Which Problem Does The Composition API Solve?
06:52
255
Replacing "data" with "refs"
11:31
256
Building "reactive" Objects
10:58
257
Reactivity: A Deep Dive
08:24
258
Replacing "methods" with Regular Functions
07:03
259
Replacing "Computed Properties" with the "computed" Function
07:53
260
Two-Way-Binding and the Composition API
02:59
261
Working with Watchers
05:43
262
A First Summary
01:38
263
How To Use Template Refs
04:50
264
Components, Props & The Composition API
07:58
265
Emitting Custom Events
02:34
266
Working with Provide/ Inject
03:43
267
Lifecycle Hooks in the Composition API
05:15
268
Migrating from Options API to Composition API - An Example Project
01:57
269
Migrating a First Component
06:41
270
Migrating a Big Component
12:39
271
Migrating the Remaining Components
11:57
272
Routing, Params & The Composition API
07:28
273
The Route & Router Objects and the Composition API
05:09
274
Using Vuex with the Composition API
04:34
275
Summary
03:11
276
Module Introduction
01:17
277
Reusability Concepts
04:55
278
Using Mixins
04:49
279
Understanding Mixin Merging
03:12
280
Global Mixins
02:53
281
Disadvantages of Mixins
03:29
282
Custom Hooks / Composables & The Composition API
08:41
283
More Custom Composition Functions
03:49
284
Why Hooks / Composables Beat Mixins
01:28
285
Example: Creating a "Search" Hook
11:30
286
Custom Hooks Gotchas
08:44
287
More Thoughts on Custom Hooks / Composables
02:55
288
Example: A Custom "Sort" Hook
05:30
289
Thanks for being part of the course!
00:56
290
Course Roundup & Next Steps
03:09
291
Vue 3 - Overview
06:31
292
Important Changes & Migration Steps
17:52
293
Vue 3: New Features
05:28
294
The New Composition API (Optional!)
23:46

Unlock unlimited learning

Get instant access to all 293 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Vue 3 Composition API 3

Vue 3 Composition API 3

Sources: vueschool.io
Explore Vue 3 Composition API with hands-on learning. From basic concepts to advanced usage, gain a complete understanding of Vue.js component logic and state
1 hour 59 minutes 20 seconds
The Vue.js 3 Masterclass

The Vue.js 3 Masterclass

Sources: vueschool.io
This is the supercharged, remastered Vue.js 3 Masterclass. We’ve taken all the feedback we got from The Vue.js 2 Masterclass, and supercharged The Vue.js Master
17 hours 7 minutes 33 seconds
Nuxt 3 Fundamentals: Build Full-Stack Vue.js Apps

Nuxt 3 Fundamentals: Build Full-Stack Vue.js Apps

Sources: vueschool.io
Nuxt is meta-framework built on top of Vue. It is the go-to way for creating server rendered apps for Vue and the latest version (v3) includes a huge number of
3 hours 5 minutes 56 seconds