
A Warm welcome to the course. My name is Sachin Bhatnagar and I'll be your mentor for this exciting and hands-on course on Vue.js. Feel free to interact with me using the forums or private messaging or directly on e-mail or social media.
In this lecture, you'll be introduced to Vue.js as we take a ten thousand feet overview of its origins, purpose and popularity in the industry. Before you learn more about Vue.js, it is important to know why it's so amazing and gaining so much popularity.
What is a Vue.js app? And what is it made up of? Let's try to find out.
Before we get our hands dirty, let's try to setup our development environment. Let me walk you through everything from using the right code editor and extensions, to downloading and setting up our very own VueBox Git repo which contains start and end code files for the next few sections. This is a lecture that you don't wanna miss.
Let's get our hands dirty with Vue.js. We'll build a super simple Hello World app but in doing so, we'll discover and learn essential concepts that make up a Vue.js app.
We're continuing our hands-on learning exercise with a simple Hello World app. In this lecture, we'll play with form fields and the Vue way of handling them.
And finally, let's output our text in reverse. This is fun!
At the heart of a Vue.js app, sits the Virtual DOM. But do you know what a DOM is in the first place? Let's learn about the Document Object Model (DOM), before bringing Virtual DOM and its benefits into the picture. This lecture is essential for you to master Vue's core values.
The Virtual DOM, by itself cannot do anything unless you bring in Reactive Data. Let's try to unravel what it is?
Explore implementing templates in a Vue.js view app by defining templates as strings, binding data properties with mustache-style syntax, and updating login dialog labels and the sign-in button text.
Learn how to use backtick string literals for multi-line templates in a Vue.js 2 app, replace single quotes, and integrate mustache tags for dynamic labels, while considering browser compatibility.
Use the x-template approach to define vue 2 templates in a script tag with type text/x-template and connect it to the login component in the root app.
Compare template options for a view component or app, from strings to GSX, weighing each approach's pros and cons, and embrace single-file components for scalable Vue apps.
Build a Vue 2 shopping cart with app and list-item components, using props, v-for, v-model, and a computed total to display itemized costs and the grand total.
Develop and integrate a reusable list widget in Vue 2 that manages a cart of items, supports add and remove via enter key, and demonstrates parent-to-child props before introducing events.
Explore rendering lists with v-for, using the key attribute and Vue's reactive data to drive updates, while learning component composition, props, and computed properties.
Master one-way data flow in Vue.js 2 using props and events. Understand data binding, component decoupling, and passing data from parent to child via a restaurant list example.
Learn two-way data binding in Vue by syncing a number input and a range slider using props, events, and the sync modifier, with update:value and value prop.
Begin building a sales request form in a Vue js 2 project by creating reusable form field components, binding data, and handling inputs like name, email, and phone.
design a reusable multi option component in vue js 2 that renders radio buttons or checkboxes, bound to parent data via props and v-model, with a configuration object and watchers.
Build a sales court request form in a Vue.js 2 app using components, reactive data binding, and v-if driven conditional rendering to validate input and show a thank-you view.
Learn how to bind classes conditionally in Vue.js 2 by turning a button into a reusable super button that toggles on and off with computed text and prevent-default click handling.
Build a no-frills image carousel in Vue.js 2 using a viewport, gallery, and slides, with horizontal translate animation and slot-based composition.
Store selected locations in the browser's local storage using a place object with latitude, longitude, and a unique id, and render weather cards for each location.
Build a weather app in Vue JS 2 that renders video cards from saved locations, fetches current conditions from the EPA API, and shows day or night visuals.
Build a currency converter component with two inputs and two currency selects that sync in real time by fetching rates from an API, with a loading cover and live conversion.
Create a currency converter in Vue.js 2 with conversions on input. Fetch conversion rates from the fixer.io API using input and change events, with watchers or computed properties as needed.
Navigate Vue.js lifecycle methods like beforeCreate, created, and mounted to initialize data, mount the app, and coordinate DOM updates with watchers and destroy hooks.
Explore how to scale Vue apps with single-file components, learning props, data binding, lifecycle hooks, and refs, while moving from single-file scripts to modular, maintainable web applications.
Discover how single file components in Vue 2 organize templates, scripts, and styles into self-contained units, enabling prop-driven, reusable components.
Explore module bundlers and task runners to bundle code into a single optimized file with tree shaking, using sass and typescript in a vue 2 app that checks palindromes.
Master the basics of webpack by learning its four configuration sections—entry points, output, module with loaders, and plugins—and how they govern bundling and asset transformation.
Configure webpack to process sass into css using sass loader, css loader, and style loader, with extract text plugin for production css.
This lecture demonstrates building a palindrome checker with webpack in a Vue.js 2 project, including input handling, a palindrome model with ES6 exports, string cleaning, and debounce-based typing optimization.
Explore single-file components in Vue.js, learning how to split an app into self-contained templates, logic, and styles, and build a restaurant list and detail app with API data.
Install the Vue command line tool globally, scaffold a back template, install dependencies, and start the dev server to view a hello world Vue app locally.
Download the project assets, drag the server folder to the template root, and copy static folder files into the distribution folder to prepare assets and svga star icons for production.
Design the core Vue app by building the root template and mounting the single-file component with template, script, and style blocks, then manage global and scoped styling.
Build a reusable list item shell in a single-file Vue 2 component, bind item data with props, register the component, and render items with v-for and a unique key.
Create a photo thumbnail component for the list item in Vue, extracting name, type, photo, and rating from backend, then bind it with a prop and a computed background image.
Learn to build a list item text component in Vue JS 2, using props for name and type, and render a type list by joining values.
Build a Vue.js 2 InfoCard component that responds to click events to show a selected restaurant, auto-loading the first item, with Sass styling and a rating meter.
Create a production build with npm run build to generate the distribution folder, static assets, and the final Vue app bundle (app, manifest, vendor) ready for cloud deployment.
Deploy a static front-end single page app with surge.sh by installing the command line interface, publishing the production build with pre-set environment variables and cross-origin resource sharing considerations, within minutes.
Build an address book web app with routing and Firebase Realtime Database, featuring contact lists, detail views, add and delete actions, and reusable components with data binding.
Set up a Vue app for an address book project, install Vue Router for a single-page app, organize folders and assets, and start the development server with hot reloading.
Download and set up the project assets from the resources archive, inspecting the static folder of pre-built styles and images, and use sample address book data as the data source.
Learn how single page apps route between sections using hash based navigation and dynamic content loading via a router view, with the history API and Vue Router.
Learn how to implement routing in Vue.js by creating and configuring a router, registering it with Vue, and rendering route-based components like home and about using router-view.
Build the Vue.js 2 app shell by wiring the view app instance, router, and single-file components, with shared styles and a router-view for dynamic components like home and contact.
Builds the home component to render a dynamic contact list (name, email, phone) and a router-link to the add contact page, while noting hash routing and history api.
Create add-contact component in a Vue 2 app, connect save and cancel actions, and configure routing to load it; use v-on to handle click and prevent default for save data.
Create a reusable user input component in Vue JS 2 that renders text, email, phone, or text area fields via a simple configuration prop.
Extend the user input component with conditional rendering to display social input fields and platform icons for Facebook, Twitter, Instagram, and LinkedIn.
Display right-edge red border for empty inputs in a Vue JS 2 user input component by binding a conditional invalid form class to the isEmpty property and handling input events.
Implement a rudimentary data validation using regex for email and phone, validating name, email, and address before enabling the save button via a computed validate method.
Implement a clear form function in the add contact component that empties all fields, then redirects to the home route after saving data, using v-model bindings and router push.
Configure Firebase Realtime Database for a Vue app, initialize the project, and bind a contacts reference with vue-fire to enable real-time data updates.
Import the firebase interface into Vue components as needed to push data to the realtime database and demonstrate open read and write rules for a public address book.
Implement an app-wide offline notification using firebase real-time connectivity to alert users when the app goes offline, disable firebase interactions such as saving, and render the notice across all routes.
Showcases a preloader during initial app load as the app connects to firebase, and uses conditional rendering to display a no records found message until the list populates.
Explore how the contact detail component uses route parameters to display details. Learn to emit a click and navigate with $router.push to the detail route using the contact's ID.
Explore building a reusable user response dialog in Vue JS 2 by creating a single-file component with slots to customize the call-to-action and emit agree and disagree events.
Enable the delete button to open a user response dialog, render it with v-if, and delete the contact from firebase using the push ID, then return to the home screen.
Build a single-page Vue.js 2 app with home, add contact, and detail views, using routing and data binding with props and events, and deploy to Firebase hosting.
Implement Firebase authentication in a Vue app with email and password and optional providers like Google or phone authentication, and learn to configure sign-in methods and domain access.
Implement a secure login and logout flow in a Vue.js 2 app using Firebase authentication, storing the user token and ID in local storage, and guarding routes and navigating home.
Fetch the unique user id (UAD) on login and expose it to components via the router, binding it as a prop and showing the logout button only when logged in.
Implement user-specific privacy by reworking the realtime database to store contacts under each user id, enforce login-only read/write through updated Firebase rules, and adapt code to pass the UAD.
Repurpose the login form to implement a signup flow with Firebase using email and password, create the user, then redirect to home and log in automatically on success.
Utilize firebase to implement a password reset flow in a Vue.js 2 app, using a reusable user response component to confirm before sending the reset email and handling errors.
Learn to display and customize user notifications in Vue.js 2 by implementing a notification unit with show/hide binding, mapping firebase errors to friendly messages, and auto-hiding after three seconds.
Deploy your vue js 2 address book app to firebase using a production build and firebase cli, then customize authentication emails and enforce user-scoped data rules.
Congratulations on completing the course and sparking an interest in Vue. Share your project ideas or a review, and the instructor will listen and implement feedback quickly.
Once upon a time, JavaScript could only be used for simple form validators. Well, time has changed and if you’re a web designer or developer, chances are that your next big project requires a cutting edge web application framework that offers state of the art features such as a Virtual DOM, Reactivity, Superhero performance, all with a feather light footprint.
That is where Vue JS comes in. Vue JS is an amazing JavaScript framework for building high performance user interfaces but has enough ammo to power your next killer web application.
In this beginner’s course on Vue JS, we will go from the absolute basics of a framework, including concepts such as DOM and setting up a development environment, to understanding core Vue features, essential workflows and best practices.
You will work through 20+ hands-on exercises to solidify your command on essential Vue concepts.
Vue offers the best of Angular and React and features a component based architecture that let’s you break down your app or even an interface into manageable and scalable functional units.
Vue apps offer incredible performance that is neck to neck and even better than some of the leading web app frameworks in use today. Vue features a Virtual DOM that is lighter than the rest and delivers impeccable performance.
By the end of the course, you would’ve mastered essential fundamentals that will enable you to:
If you’re a web designer, developer or even a project manager with a goal to master or pick a web application framework for your project, but are too afraid to begin, then this is your chance to finally realise your dream. Vue is surprisingly simple to learn, which makes it a winner and enables existing production grade projects and teams to incrementally bring it into their ecosystem.
One of the best things about this course is the personalised hand-holding that I offer to all my learners. As a student of this course, you are invited to interact with me and seek help. It is my endeavour to ensure your success.
All lessons come with start and end files and I’m committed to updating this course in line with Vue’s evolution and future.
Vue has gained tremendous ground and its community is growing exponentially. So, hop on in and together, learn Vue JS.