
Vue.js essentials is a three-course bundle that trains you in installation, template syntax, reactivity, and components, and provides a crash course on the Vue ecosystem and related tools.
Explore how Vue.js scales from lightweight widgets to full enterprise apps. Build simple pages, single-page apps, and data-driven front ends with API backends, authentication, and tests with continuous integration.
Learn what you need to know before learning Vue.js, including solid JavaScript and web development fundamentals, DOM querying, DOM manipulation, and event handling, to confidently build dynamic web interfaces.
Explore optional Vue ecosystem tools, including a preconfigured webpack setup, single-page app routing with components mapped to paths, Vue devtools, and Vuex for state management with time travel debugging.
Preview the three courses in the Vue.js essentials bundle, introducing beginners to installing Vue, template syntax, lifecycle hooks, and building a component-based, router-enabled, single-page app with state management.
Welcome to Build Your First Vue.js App. This is a hands-on course for web developers who've never used Vue.js before, or want to brush up on the fundamentals.
My name is Anthony Gore and I'll be your instructor on this course. Let me tell you a little bit about it!
In this course we're going to cover many of the fundamental features of Vue, including stuff like:
Installing Vue
Adding Vue to a web page
Creating Vue data and methods
Template syntax
And so on.
We'll also build a simple app called Vue.js Poster Shop, which will allow you to practice all the theory you've learned in a real-world app.
Let's take a look at the finished product so you can get a sense of what you're going to be able to do with Vue by the end of the course.
Demo of the finished product
This is Vue.js Poster Shop. It allows you to search for a kind of poster you might want to buy. For example, here's a search for "cat", because who doesn't want a poster of a cat, right?
If you're more of a dog person, though, you can use the search bar at the top and search for that.
Cart
When you see a poster you want to purchase, you can add it to the cart like that.
From the cart, you can increase the quantity of an item if you want more than one. You can also decrease the quantity, and if you decrease it to 0, it's going to be removed from the cart entirely.
So you can see we have complete shopping cart functionality here, and you'll be surprised at how easy it is to do all this with Vue.
Scroll loading
There are also a variety of other subtle features of the app that give it a really nice user experience.
One I'll show you now is the scroll loading feature.
So you can see from the message at the top of the page that a search for "cat" has returned 11 results.
As I start to scroll down the page to view the results, notice the scroll bar over here on the right of the page.
You'll see that it suddenly jumps up as I scroll toward the bottom of the results.
The reason is that not all 11 of the results are added to the page at once; in fact, only 4 are added at a time, and more get added as we keep scrolling.
This feature that makes the page load faster and run smoother.
You'll be able to advanced Vue.js features like this by the end of the course as well.
Install a production-ready Vue build with npm i -s vue@2.5.17, locate the Vue module in node_modules, and load node_modules/vue/dist/vue.js using a script tag with type text/javascript above your custom script.
Include Vue in your project and create your first Vue instance with new Vue and a configuration object. Mount it to the element with id app using the el property.
Add a data property to the Vue config and set total to 0. Render total with interpolation using curly braces so the page updates as the value changes.
Add a cart button to update the total reactively using Vue's v-on click handler, then refactor the logic into the addToCart method that uses this.total.
Learn how Vue's v-for iterates arrays, updates the DOM efficiently when items change, and uses a unique key bound with v-bind to ensure correct item removal.
Learn how Vue.js enables reactivity by observing data changes and automatically rerendering the template. See how interpolation updates to display new values without explicit instructions.
Learn how the addToCart method updates the total and pushes products into the cart array, with each product priced at 9.99, and verify state using Vue Devtools.
Explore conditional rendering in Vue using v-if and v-else to hide the cart when empty and show cart contents and total when items exist, with styling classes cart-total and empty-cart.
Increment the cart item's qty when addToCart is called for the same product. Loop through the cart to check ids and add a new item only if not found.
Add quantity controls to the cart in a Vue.js app by wiring plus and minus buttons with v-on:click to inc and dec methods, passing the item.
Implement inc and dec logic for the cart by incrementing item quantity and total price, then removing the item when quantity reaches zero using indexOf and splice.
Add a search bar to the product list, prevent the form's default submit behavior with v-on and prevent modifiers, and prepare to query the API with AJAX.
Add a text input for search, bind it with v-model to a new search data property, and prepare to send the typed term in an AJAX call to the API.
Learn how to integrate the vue-resource library to perform http requests in Vue, using this.$http with get, post, and put, and handle responses with promises.
Make a get request with Vue Resource to fetch poster objects via /search?q= and the user's search term. Handle the response with then to inspect status and API data.
Replace dummy items by loading real products from the response body into the Vue instance, update onSubmit to set this.products, and hint users with search terms cat, dog, and flower.
Display the Vue.js product thumbnail and price by binding product.thumb to an image and using a currency filter on product.price, arranged in left image and right price columns.
Add a dynamic search results message above the product list using products.length, and update the template to display lastSearch after ajax submit.
Add a loading indicator in Vue by introducing a loading boolean, clearing results on submit, and showing 'Loading...' with v-if during simulated AJAX delay.
Explore the Vue lifecycle from reactivity setup to dom mounting, and define created and mounted hooks in the Vue config to run code at the right moment.
Add a fade effect to cart items rendered with v-for using transition-group, render as a ul, reuse the fade name, and place the no-items message at the top.
Apply scroll loading to render search results on demand, loading four items at a time from the ajax response using slice, and store all results in a non-reactive results array.
Detect when the user reaches the bottom using an invisible sensor element and the scrollmonitor library, then load the next four items.
Implement a Vue scroll monitor with an appendResults method to copy results to products and log 'Append results', while using beforeUpdate and updated to manage the watcher safely.
Fix search results in the Vue.js essentials course by using results.length for the top message, show 'No more items' only when results.length > 0, and clear results on empty searches.
Learn how a Vue.js app delays rendering while scripts load, and implement a v-cloak based loading indicator to hide unparsed templates on slow connections.
If you're looking to learn and master Vue.js with an expert instructor, look no further than Vue.js Essentials.
In this series of three courses, you'll build three real-world Vue.js apps that take you from the very basics of Vue to the cutting edge.
With over 6000 past students, this course bundle includes 10 hours of high-quality video with English closed captions.
Keep reading to see what's included...
Course 1: Build Your First Vue.js App
This first course is an introduction for those who've never used Vue.js or who need to brush up on the basics.
We'll cover key Vue concepts such as:
Installing Vue
Adding Vue to a web page
Template syntax (interpolations and directives)
Lifecycle hooks
Transitions
And more!
The best way to learn is by doing, so we'll put this theory into practice and build a simple but powerful eCommerce user interface complete with products and a shopping cart called Vue.js Poster Shop.
Course 2: Build A Vue.js Single-Page App with Vue Router
Now that you know the basics of Vue, you're ready to learn Vue's most powerful features!
By the end of this second course, you'll be able to build a high-performing, feature-rich Vue.js app using the single-page application (SPA) architecture.
Topics covered in this course include:
Components
Vue Router
Slots
Single-file components
Custom plugins and directives
Webpack configuration for Vue.js projects
And more!
Together, we'll build a movie session times app called Vue.js Cinema that, unlike the app from the first course, includes multiple pages managed with Vue Router.
Building this app will introduce you to the power and versatility of components-based app design. You'll also learn how to utilize Webpack for an enhanced Vue development experience.
Course 3: Build A Professional Vue App with Vuex & Server-Side Rendering
Are you ready to become a Vue expert?
Now that you're comfortable building Vue.js SPAs, you're ready for Vue's advanced concepts!
In this course, I'll show you the tools and techniques that front-end experts use to build highly optimized, high performing web UI.
Firstly, we'll cover the Vuex state management pattern, which is a special method for storing data in your app that's essential for bigger and more complex sites.
We'll then set up server-side rendering (SSR) from scratch. This is where we compile our app on the Node.js server in order to drastically improve page load time.
The case-study project for this course is our most ambitious yet; a Google Calendar clone called Vue.js Cinema that utilizes Vuex, SSR and a host of other optimizations.