• Fri, Mar 2026

Vue.js Tutorial for Beginners: What is Vue and Why Use It?

Vue.js Tutorial for Beginners: What is Vue and Why Use It?

This tutorial provides a comprehensive beginner-friendly introduction to Vue.js. You’ll learn what Vue is, why it’s widely used, and follow a detailed step-by-step guide with real code examples to build your first Vue applications. Perfect for beginners who want to start their frontend development journey with Vue.

Introduction

Modern web development is dominated by frameworks that simplify the process of building interactive user interfaces. Among them, Vue.js stands out as one of the most popular, lightweight, and developer-friendly JavaScript frameworks.

If you’ve heard about Vue.js but don’t know where to start, this tutorial is for you. In this article, we will explain what Vue.js is, why developers love it, and guide you step by step through setting up and building your first Vue applications.

What is Vue.js?

Vue.js (commonly referred to as Vue) is an open-source progressive JavaScript framework used to build interactive web interfaces and single-page applications. It was created by Evan You and released in 2014. Vue combines the best features of Angular and React while keeping the learning curve gentle.

It is often described as a progressive framework because you can use it incrementally. You can start small by using it on a single component or scale up to building complex single-page applications (SPAs).

Key Features of Vue.js

  • Reactive Data Binding: Automatically updates the DOM when data changes.
  • Component-Based: Build reusable and modular pieces of code.
  • Virtual DOM: Efficient rendering of UI components.
  • Directives: Special tokens in templates that bind DOM elements to data.
  • Ease of Integration: Can be used in existing projects without a complete rewrite.

Why Use Vue.js?

Developers and companies choose Vue.js because it offers a balance between simplicity and power. Below is a comparison of why Vue stands out compared to other frameworks:

Comparison Table

Here’s a comparison of Vue.js with Angular and React:

FeatureVue.jsReactAngular
Learning CurveEasyModerateSteep
Size~20 KB~30 KB~60 KB
TypeProgressive FrameworkLibraryFull Framework
Best ForSmall to large projectsUI ComponentsEnterprise Apps

Setting Up Vue.js

Before diving into Vue.js, you need to set up your environment. There are two main ways to start with Vue:

  1. Using the Vue CDN: The easiest way for beginners.
  2. Using Vue CLI: For more advanced project setups.

Option 1: Using Vue via CDN

Create an index.html file and include Vue from a CDN:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue CDN Example</title>
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
  <div id="app">
    {{ message }}
  </div>

  <script>
    const { createApp } = Vue
    createApp({
      data() {
        return { message: "Hello Vue!" }
      }
    }).mount('#app')
  </script>
</body>
</html>

Option 2: Using Vue CLI

For larger applications, Vue CLI gives a powerful development environment:

# Install Vue CLI globally
npm install -g @vue/cli

# Create a new project
vue create my-vue-app

# Navigate to project folder
cd my-vue-app

# Run development server
npm run serve

Your Vue app will now run at http://localhost:8080.

Step by Step Guide: Building Your First Vue App

1. Creating the Project

We’ll use the Vue CLI setup to create a basic app. After running vue create my-vue-app, open the project in your favorite editor.

2. Understanding the Project Structure

Here’s a quick breakdown of the default Vue project structure:

  • src/main.js: Entry point of the app.
  • src/App.vue: Root component.
  • src/components/: Folder for reusable components.

3. Modifying App.vue

Open App.vue and edit it like this:

<template>
  <div id="app">
    <h1>{{ title }}</h1>
    <input v-model="newTask" placeholder="Enter a task" />
    <button @click="addTask">Add Task</button>

    <ul>
      <li v-for="(task, index) in tasks" :key="index">
        {{ task }}
        <button @click="removeTask(index)">Remove</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: "My First Vue To-Do App",
      newTask: "",
      tasks: []
    }
  },
  methods: {
    addTask() {
      if (this.newTask.trim()) {
        this.tasks.push(this.newTask)
        this.newTask = ""
      }
    },
    removeTask(index) {
      this.tasks.splice(index, 1)
    }
  }
}
</script>

<style>
#app {
  font-family: Arial, sans-serif;
  margin: 20px;
}
</style>

Congratulations! You just built a simple to-do application using Vue.

Deep Dive into Vue Concepts

Data Binding

Vue allows two-way data binding using v-model. For example:

<div id="app">
  <input v-model="name" placeholder="Enter your name" />
  <p>Hello, {{ name }}!</p>
</div>

Directives

Directives are special attributes in Vue templates:

  • v-if – conditional rendering
  • v-for – loop through items
  • v-bind – bind attributes
  • v-on – event listeners

Components

Vue is component-based. Example of creating a custom component:

<!-- HelloWorld.vue -->
<template>
  <h2>Hello, {{ name }}!</h2>
</template>

<script>
export default {
  props: ['name']
}
</script>

Use it in App.vue:

<template>
  <div>
    <HelloWorld name="Vue Developer" />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'
export default { components: { HelloWorld } }
</script>

Conclusion

Vue.js is an approachable yet powerful framework that makes frontend development more efficient and enjoyable. In this tutorial, we covered:

  • What Vue.js is and why it’s used
  • Setting up Vue with CDN and CLI
  • Building a simple to-do app
  • Exploring key concepts like directives, data binding, and components

With these foundations, you’re ready to explore more advanced Vue features like routing, Vuex (state management), and building production-ready apps.

This website uses cookies to enhance your browsing experience. By continuing to use this site, you consent to the use of cookies. Please review our Privacy Policy for more information on how we handle your data. Cookie Policy