Vue JS 3: Composition API (with Pinia, Firebase 9 & Vite)
Course description
If you’re already familiar with Vue 2 & The Options API, then this course will teach you everything you need to know to switch over to (and get started with) Vue 3 & the amazing new Composition API. My name’s Danny, I’m an Indie App Developer & Creator of Fudget, the highest rated personal finance app for iOS, Android, Mac & Windows. And I’ve spent the last 12 months creating Fudget 2 - which is built on Vue 3 & The Composition API.
Read more about the course
In this course you’ll start by learning the key differences between the Options API & Composition API by creating a simple Options API app & converting it to the Composition API.
You’ll then master all of the basics including:
Reactive data with Refs & Reactive Objects
Methods, Computed Properties & Watchers
Lifecycle Hooks
Directives
Vue Router
Child Components - including the new ways of handling props, emits & modelValue
Dynamic Components
Composables - how to create them from scratch & how to import them from the VueUse library
And you’ll learn State Management using Pinia, the incredible successor to Vuex
After learning the basics, you’re gonna create a real world app called Noteballs from scratch - which has full CRUD capabilities, uses Pinia for State Management and demonstrates real-world use of all the basics you learned earlier.
After this course, you’ll be able to create your own Vue 3 apps based entirely on the Composition API - from scratch.
This course requires a basic understanding of Vue 2 & The Options API, HTML, CSS & JavaScript.
Watch Online
Watch Online Vue JS 3: Composition API (with Pinia, Firebase 9 & Vite)
All Course Lessons (138)
# | Lesson Title | Duration | Access |
---|---|---|---|
1 | Introduction Demo | 08:03 | |
2 | What is the Composition API? | 05:37 | |
3 | Editor & Software Setup | 07:45 | |
4 | Vue Devtools | 02:08 | |
5 | Vue 3 Docs & Install Node.js | 01:06 | |
6 | Create a Vue Project | 02:39 | |
7 | Project Setup | 03:44 | |
8 | Options API - Design | 01:35 | |
9 | Options API - Data & Methods | 02:00 | |
10 | Convert it to Composition API | 01:28 | |
11 | Composition API - Data (refs) & Methods | 03:21 | |
12 | Script Setup - An Easier Way! | 02:52 | |
13 | Refs | 01:28 | |
14 | Two-Way Data Binding | 01:32 | |
15 | Reactive Objects | 03:00 | |
16 | Non-Reactive Data | 01:21 | |
17 | Methods | 03:41 | |
18 | Computed Properties | 04:15 | |
19 | A Note on Filters | 01:33 | |
20 | Watch | 03:42 | |
21 | Mounted Hooks | 04:19 | |
22 | Activated Hooks | 02:01 | |
23 | Updated Hooks | 01:32 | |
24 | Multiple Hooks! | 02:13 | |
25 | Local Custom Directives | 03:49 | |
26 | Global Custom Directives | 02:51 | |
27 | $route - Part 1 | 03:50 | |
28 | $route - Part 2 | 03:22 | |
29 | useRoute | 02:41 | |
30 | useRouter | 03:30 | |
31 | Lists (v-for) | 02:55 | |
32 | Template Refs | 03:05 | |
33 | nextTick | 01:52 | |
34 | Teleport - Part 1 | 04:24 | |
35 | Teleport - Part 2 | 03:22 | |
36 | Child Components | 02:52 | |
37 | Fix Lazy-Loading Views | 01:36 | |
38 | Slots | 03:35 | |
39 | Props | 03:52 | |
40 | Emits | 03:53 | |
41 | modelValue | 02:25 | |
42 | update:modelValue | 02:39 | |
43 | Dynamic Components - Part 1 | 02:47 | |
44 | Dynamic Components - Part 2 | 02:20 | |
45 | Provide / Inject - Part 1 | 04:11 | |
46 | Provide / Inject - Part 2 | 03:14 | |
47 | What is a Composable? | 04:55 | |
48 | Create a Composable | 02:40 | |
49 | Use Our Composable | 03:27 | |
50 | Reuse our Composable | 04:16 | |
51 | Add Composable from VueUse | 03:28 | |
52 | What is State Management? | 05:36 | |
53 | Composable State vs Vuex vs Pinia | 05:03 | |
54 | State - Part 1 | 02:42 | |
55 | State - Part 2 | 05:42 | |
56 | Actions | 03:41 | |
57 | Getters | 02:43 | |
58 | Use our Store Anywhere | 02:23 | |
59 | Introduction & Noteballs App | 02:07 | |
60 | Create Project | 02:15 | |
61 | Router - Install & Setup | 03:03 | |
62 | Router - Add Some Routes | 04:01 | |
63 | Add RouterView & Navigation | 01:51 | |
64 | Router - Tidying Up | 02:20 | |
65 | Install Bulma | 03:10 | |
66 | Nav Bar - Design | 02:47 | |
67 | Nav Bar - Navigation & Logo | 02:55 | |
68 | Nav Bar - Responsive Design & Menu | 05:06 | |
69 | Pages (Design) | 02:05 | |
70 | Notes (Design) | 01:52 | |
71 | Add Note Form (Design) | 02:31 | |
72 | Notes Array (Ref) | 02:38 | |
73 | Add Note Method | 09:01 | |
74 | Child Component - Note | 02:33 | |
75 | Props (Note) | 01:35 | |
76 | Computed (Note Length) | 05:46 | |
77 | Delete Note (Emit) | 06:25 | |
78 | Pinia - Setup & State | 04:21 | |
79 | Use Our Store | 03:41 | |
80 | Action - Add Note | 03:48 | |
81 | Action (with Parameters) - Add Note | 02:39 | |
82 | Action - Delete Note | 05:16 | |
83 | Edit Note Page & Route | 04:39 | |
84 | Reusable Component - AddEditNote | 03:58 | |
85 | Hook up with modelValue | 05:33 | |
86 | Fix the Focus | 05:05 | |
87 | Custom Color, Placeholder & Label Props | 10:33 | |
88 | Getter - Get Note Content (useRoute) | 05:36 | |
89 | Getter (with Parameters) - Get Note Content | 03:10 | |
90 | Action - Update Note | 06:25 | |
91 | useRouter - Redirect to Notes Page | 01:21 | |
92 | More Getters & Stats Page | 07:34 | |
93 | Directive - Autofocus | 02:08 | |
94 | Global Directive - Autofocus | 02:58 | |
95 | Watch the Number of Characters (Watch) | 02:11 | |
96 | Composable - useWatchCharacters | 04:25 | |
97 | Composable - Multiple Parameters | 02:49 | |
98 | Click Outside Composable (VueUse, Template Refs) | 06:11 | |
99 | Delete Modal Design (Reactive Objects) | 07:20 | |
100 | Hide the Delete Modal (modelValue & update:modelValue) | 05:22 | |
101 | Delete Modal - Click Outside to Close | 03:35 | |
102 | Delete Modal - Keyboard Control (Lifecycle Hooks) | 06:19 | |
103 | Delete Modal - Delete The Note | 04:58 | |
104 | Introduction to Firebase | 03:30 | |
105 | Create a Firebase Project | 01:47 | |
106 | Create App & Install Firebase | 02:04 | |
107 | Setup Firestore Database | 02:36 | |
108 | Connect to Database | 02:24 | |
109 | Display Notes from Firestore | 07:18 | |
110 | Get Notes in Real Time | 07:50 | |
111 | Add Note | 06:22 | |
112 | Delete Note | 02:37 | |
113 | Update Note | 05:06 | |
114 | Order Notes by Date (ID) | 05:33 | |
115 | Improve Document Structure & Auto ID’s | 05:27 | |
116 | Display Date on Note | 09:38 | |
117 | Add a Progress Bar | 04:55 | |
118 | Show Placeholder when No Notes | 02:09 | |
119 | Login & Register Page - Tabs | 07:30 | |
120 | Login & Register Page - Form | 08:32 | |
121 | Firestore Authentication & Auth Store | 03:41 | |
122 | Register User | 07:06 | |
123 | Logout User | 02:25 | |
124 | Login User | 03:26 | |
125 | Listen for Auth Changes & Store User Data | 07:51 | |
126 | Improve Logout Button | 04:04 | |
127 | Redirect User on Auth Change | 05:24 | |
128 | Restructure Database for Multiple Users | 05:43 | |
129 | Setup Refs for Multiple Users | 07:19 | |
130 | Clear Notes array in State when user logs out | 04:13 | |
131 | Unsubscribe from the Get Notes Listener | 08:54 | |
132 | Navigation Guards - Part 1 | 03:49 | |
133 | Navigation Guards - Part 2 | 04:47 | |
134 | Firestore Security Rules - Part 1 | 03:31 | |
135 | Firebase Security Rules - Part 2 | 05:20 | |
136 | Hosting - Part 1 | 06:19 | |
137 | Hosting - Part 2 | 04:08 | |
138 | Bonus Lecture | 02:23 |
Unlock unlimited learning
Get instant access to all 137 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionComments
0 commentsSimilar courses

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

100 Days Of Code: The Complete Web Development Bootcamp 2024

The Complete Guide to Data Fetching in Nuxt

Want to join the conversation?
Sign in to comment