Skip to main content
00:00/00:00
Lecture 2 of 127

Introduction and Project Over-Vue

Download Course (Free)

Course Content

0 / 127 completed
Section 1: Ready, Set, Code!8 videos

Scaffolding a Lightning-Fast Vue.js 3 App with Vite

9m

Introduction and Project Over-Vue

9mNow Playing

Learning Environment Intro

5m

Prerequisites and Initial Environment

14m

Powering Up VS Code P1 Vue.js 3 Official Extension

11m

Powering Up VS Code P2 Eslint for Vue.js 3

21m

Powering Up VS Code P3 Prettier for Vue.js 3

10m

Git Basics for Every Developer

22m
Section 2: Project Structure and Routing7 videos

Navigating the Project Directories and Boilerplate Cleanup

13m

Lazy Load Routes with Vite�s Dynamic Imports in Vue Router

4m

Setting Up Vue Router and Navigation with Router Link

12m

Create Dynamic Routes with Wildcards in Vue Router

8m

Catch All Undefined Routes and Create 404 Not Found Page in Vue Router

8m

Refactor Vue.js Codebase for File-Based Routing

12m

Set Up Auto Routes in Vue Router with TypeScript Support

11m
Section 3: Bootstrap the App Backend with Supabase17 videos

Supabase The Perfect Backend for Vue.js Frontend

7m

Integrate Supabase and Connect with Vue.js

10m

Use Supabase UI to Create Tables and Rows

7m

Secure Secret App Data with Vite Environment Variables

12m

Use Supabase SQL Editor to Create Tables and Rows

8m

Use Supabase CLI in Vue.js and Connect to the Remote Project

11m

Getting Started with Fakerjs

9m

Create Supabase Database Migration Files in Vue.js

10m

Set Up Supabase JavaScript Client in Node Environment

8m

Seeding the Supabase Remote Database with Fakerjs

12m

Query Supabase from Vue.js Script Setup

10m

Insert Bulk Entries Into Supabase Database

6m

Use Immediately Invoked Function Expression in Script Setup

5m

Introduction to Vue.js Reactivity System and Using Refs

10m

Provide TypeScript Type Definitions for Refs in Vue.js Script Setup

6m

Add TypeScript Support to Supabase in Vue.js

13m

Create a New Page for Tasks with Database Migration, Seed and Types

16m
Section 4: Adding UI Elegance with Style14 videos

Getting Started with Shadcn UI and Vue.js

14m

Prepare the Vue App Layout with TailwindCSS

9m

Utilize Shadcn Input and Dropdown Components

12m

Use Lucide Icons with Iconify and Vue.js

9m

Create a Sidebar and Organize Code with Vue Components

11m

Iconify Icon Web Component in Vue.js

12m

Extract a Reusable Vue Component for Sidebar Links

13m

Configure Vue Router Active Links with TailwindCSS

6m

Build a Vue.js Data Table Component with Shadcn and TanStack

13m

Create Layout Vue.js Component

8m

Customize the Data Table Implementation for Our Vue.js App

12m

Create a Data Table for the Projects Page

8m

Make the Data Table Cells Clickable with RouterLink

12m

Exploring Alternative Ways to Integrate Shadcn and TanStack DataTable

18m
Section 5: Refactoring The Project Architecture for Scalability14 videos

Integrate unplugin-auto-import with Vue and Vite

14m

Configure unplugin-auto-import for unplugin-vue-router

11m

Implement Components Auto Importing Feature in Vue.js 3

15m

Use Vue.js Suspense Component to Handle Async Dependencies

10m

Enhance Vue Router with Suspense for Async Components

11m

Dynamic Page Titles with Pinia

16m

Retrieve Project Details for Tasks Querying Nested Database Tables

9m

Handle Complex Supabase Queries

12m

Cleaning Time P1 Separating Supabase Queries and Types

11m

Fetch the Data for the Individual Project Page

14m

Cleaning Time P2 Separating Column Definitions

8m

Use the Vue Watch API to Update Pinia Store with the Project Name

7m

Make the Project Page Template Dynamic

12m

Exercise Create Dynamic Indvidual Task Page

15m
Section 6: The Perfect Technique for Global Error Handling9 videos

Intro Why Error Handling Matters for Developers and Users

10m

Create Global Error Handler in Vue.js with Pinia and Vue Router

10m

Adjust the Error Page for Custom Errors

13m

Adjust the Error Page for Native JavaScript Errors

7m

Adjust the Error Page for Supabase Errors

20m

Handle Uncaught JavaScript Errors in Vue.js with onErrorCaptured Hook

8m

Create an Error Page for the Production Server

11m

Use Props and Vue.js Deep Pseudo-class to Create a Dev Error Component

10m

Use defineAsyncComponent to Conditionally Render the Appropriate Error Page

8m
Section 7: Authentication System with Supabase and State Management23 videos

Register new Users with Supabase Auth and Vue.js

9m

Use v-model to Collect Form Data Values

9m

Set Up Vue.js and Supabase for Seamless Auth Integration

10m

Automatically Generate User Profiles on Registration

7m

Login Users with Supabase Auth and Vue.js

9m

Quick Cleanup for the Login and Register Pages

12m

Set Up Auth Store and Integrate It with Utility Functions

10m

Fetch the User Profile and Update the Auth Store

11m

Create a Vue Router Guard to Validate the Supabase Auth Session

6m

Retrieve the Auth Session using Supabase Client

9m

Manage v-for loops with v-if in Vue.js Using Filters

15m

Use the Vue.js Template Special Element with v-for Loops

8m

Emit Custom Events from Child to Parent in Vue.js

15m

Overcome Challenges of Using Pinia Stores in External Files

13m

Protect Routes with Navigation Guards

11m

Watch for Supabase Auth changes and Update Auth Store

11m

Wait for Pinia Store Updates Before Navigating

7m

Changes to Default Email Provider in Supabase

10m

Handle Supabase Server Auth Errors

11m

Implement Realtime Form Validation

20m

Use watchDebounced from VueUse

10m

Create a Composable for Handling Form Errors

10m

TypeScript Mapping and Generics

11m
Section 8: CRUD Operations28 videos

Using Pinia for Efficient Data Loading and Caching

13m

Create Dynamic User Profiles

15m

Use useMemoize from VueUse to Optimize Pinia Loader Functions

7m

Update Stale Data with Fresh Data

7m

Implement Stale While Revalidate with Pinia and useMemoize

13m

Create a Vue.js Composable for Projects Collaborators

13m

Set Up Eslint 9 with Flat Config in Vue.js

18m

Use Vue.js Render Functions to Render Collaborators

10m

Load the Collaborators Without Impacting Page Loading Speed

11m

Fetch and Collect Collaborators Across All Projects

18m

Reuse the Pinia Loader to Load Single Project

14m

Fix a Little Bug with the Project Title Watcher

6m

Create Text Field Component with defineModel

7m

Emit Custom Events on Input Blur

6m

Make the Pinia Loader Cache Invalidation Logic Reusable

16m

Update Project Title in the Database

13m

Update the Project Status in the Database

10m

Create a Toggle Component for the Project Status

11m

Use Vue.js Props Destructure to Assign Default Values for Props

8m

Use defineModel with Textarea and Adjust the Database Schema

8m

Reuse the useCollab Composable in the Project Page

14m

It's Showtime Apply Your Skills to Tasks!

3m

Add Tasks and Projects From Anywhere in the App

13m

Create a Form for Tasks using FormKit

10m

How to Install and Use FormKit in Vue.js 3

11m

Fetch the Select Fields Options from the Database

14m

Validate and Create Tasks

12m

Delete Tasks

18m
Section 9: Wrapping Up7 videos

Render the Appropriate Layout

6m

Use Vue.js Provide and Inject with TypeScript

11m

Implement Global State with Composables

20m

Combine RouterView and Suspense with the Vue Transition Component

14m

Add Dark Mode Toggle in Vue With useDark from VueUse

12m

Use Vue Meta to Set Dynamic Title and Meta Data

9m

Finished Not Really�We�re Just Warming Up!

8m