Learn Vue by Building and Deploying a CRUD App

Learn Vue by building and testing a full-featured web application!

Learning Objectives

This course will teach the fundamentals of Vue by building an actual web application. Each chapter in this course will build upon itself to achieve that goal of developing a web app.

The web application that will be built in this course is for managing a list of users that are stored in a database. This type of site is called a CRUD (Create, Read, Update, and Delete) application, as it provides the key functionality for interacting with a database.

By the end of this course, you will be able to:

Create a website using Vue to enhance the functionality of the web application Utilize the key Vue Directives (v-for, v-on, v-show, v-if, v-else) to add logic to your web application Understand how to use methods and computed properties Create dynamic styling of a web application using style binding Create a new Vue project using the Vue CLI and Vue UI Develop a Vue application using the tooling provided by the Vue UI Explain how components are the building blocks for Vue applications Implement unit tests for your Vue components Pass data between components using props and custom events Understand the lifecycle of the Vue instance (and components) Utilize the axios library to interface with an external API (HTTP GET, POST, DELETE, and PUT calls) Implement a mock of the axios library to unit test using an external API Migrate data to a Vuex Store Implement a Single-Page Application (SPA) using Vue Router Deploy a Vue web application to the web using Netlify

Chapters

Here's a breakdown of the chapters in this course:

Part 1 (Vue Fundamentals)

Introduction to Vue Changelog Initial Webpage Getting Started with Vue Displaying Lists with the v-for Directive Using the v-on and v-show Directives Using the v-if and v-else Directives Introduction to Methods Methods (Part II) Computed Properties Style Binding

Part 2 (Components)

Introduction to Components Vue CLI Vue UI Components (Part II) Unit Testing Props Components (Part III) Custom Events Unit Testing (Part II)

Part 3 (Working with an API)

Vue Lifecyle TDD: Loading data via GET TDD: Message Banner TDD: Saving data via POST TDD: Deleting data via DELETE TDD: Updating data via PUT

Part 4 (Vuex and Vue Router)

Introduction to Vuex TDD: Vuex (Part II) TDD: Vue Router Deploying to Netlify Conclusion

Tools and Technologies

This course is focused on teaching the fundamentals of Vue by building and testing a web application using Test-Driven Development (TDD).

TDD begins in Part 3.

In Part 1 (Vue Fundamentals) of this course, we'll being building a simple web application in an HTML file; all of the JavaScript (Vue) code will be in this single file.

In Part 2 (Components) and Part 3 (Working with an API), we'll learn about the Vue CLI (Command Line Interface) and the Vue UI (User Interface). As we start to build a more complex Vue application using multiple components, we'll see the power of being able to easily create and develop a Vue application using the Vue CLI/UI.

In Part 4 (Vuex and Vue Router), we'll learn about two libraries (Vuex and Vue Router) that are frequently used in larger Vue projects.

As the culmination of this course, we'll deploy the Vue web application to the web using Netlify.

Prerequisites

This course is intended for people with some experience with HTML/CSS and JavaScript.

No prior experience with other JavaScript frameworks (React, Angular, etc.) is necessary.

While the software tools needed for this course are primarily an IDE (Integrated Development Environment) for writing code and a web browser for viewing the webpages created, I would also recommend installing the Vue DevTools to help with understanding how Vue works. I'll be providing examples of what the Vue DevTools show you, but it's a nice tool for understanding what Vue is doing.

Demo

An example of the web application that will be created in this course can be found at:

Vue CRUD Application Deployed via Netlify

Info

Current version: 1.0.0

Last updated: January 8th, 2019

Author: Patrick Kennedy

What will you learn?

Part 1

In Part I (Vue Fundamentals), you'll learn how to build a simple web application using Vue.

Within this web application, you'll learn the fundamentals of Vue, how to use methods and computed properties within a Vue project, and the following Vue directives:

v-for v-on v-show v-if and v-else v-bind

Part 2

In Part 2 (Vue Components), you'll learn about components in Vue, which are the building blocks for all Vue applications.

Additionally, you'll learn about the Vue CLI (Command-Line Interface) and the Vue UI (User Interface), which help to create, structure, and manage our Vue applications.

We started using the Vue UI as our primary tool for serving our Vue application and running our unit tests.

In order to test the components that are developed, you'll learn how to develop unit tests for the Vue components and how to use the Vue UI for running these tests.

Part 3

In Part 3, you'll focus on interfacing with an external API via the following HTTP methods:

GET POST PUT DELETE

In addition, you'll learn about the Vue lifecycle and how we can take advantage of Vue's lifecycle hooks to initialize our components properly.

In order to unit test the HTTP methods making calls to an external API, we'll learn about mocking the calls to an external library to facilitate developing unit tests.

Part 4

In Part 4, you'll learn about two libraries that are frequently used in Vue projects:

Vuex - state management library Vue Router - router library

The course culminates with deploying the Vue web application to the web using Netlify.