Book Image

Vue.js Quick Start Guide

By : Ajdin Imsirovic
Book Image

Vue.js Quick Start Guide

By: Ajdin Imsirovic

Overview of this book

Vue.js is the latest trending frontend framework. Simplicity, reactivity, and ?exibility are some of the key benefits that Vue offers to developers. This book will help you learn everything you need to know to build stunning reactive web apps with Vue.js 2 quickly and easily. This book will take you through the Vue 2 framework. You will start by learning the different Vue installation options: CDN, NPM, and Vue CLI. Then we will look at the core concepts of Vue: templates and components – ways to modularize Vue code. You will learn how to utilize directives, which are Vue-specific HTML attributes with additional features. Also, you will see how Vue uses a streamlined approach to development, with reusable methods, computed properties, and watchers, and how it controls state with the help of its data option. You will learn about the concepts of reactive programming in Vue, and how to understand communication between parent and child components. We will take a look at props and slots, working with CSS, filters, and mixins. We will also look at ways to add transitions and animations to Vue apps. Then you will extend Vue by building custom directives and your own plugins. Finally, you will learn about Vuex – a Vue plugin that allows us to centralize state, and also introduce Nuxt, which is a framework that builds on top of Vue and solves some issues of single-page applications. After learning about these components, you will be ready to build your own reactive web apps with Vue.js 2.
Table of Contents (15 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Improving our fruit counter app


In this section, we will make some improvements to our fruit counter app. The goal is to see how we can go about extending our apps using Vuex.

We will update our app by adding additional functionality. Namely, we'll add buttons for different fruits: apples and pears. The number of fruits to eat and the number and kind of fruits eaten will appear in our app too.

Here is the updated JS code. We begin with defining the state in the store:

const store = new Vuex.Store({
  state: {
    count: 5,
    apples: 0,
    pears: 0
  },

Next, we set up the getters:

  getters: {
    counter(state) {
      return state.count;
    },
    appleCount(state) {
      return state.apples;
    },
    pearCount(state) {
      return state.pears;
    }
  },

When defining mutations, we need decrementWithApplesCounter and decrementWithPearsCounter, and the resetCounter functionality:

  mutations: {
    decrementWithApplesCounter(state, payload) {
      state.count = state.count - 1;
    ...