Book Image

Vue.js 2 Design Patterns and Best Practices

By : Paul Halliday
Book Image

Vue.js 2 Design Patterns and Best Practices

By: Paul Halliday

Overview of this book

Vue.js 2 Design Patterns and Best Practices starts by comparing Vue.js with other frameworks and setting up the development environment for your application, and gradually moves on to writing and styling clean, maintainable, and reusable Vue.js components that can be used across your application. Further on, you'll look at common UI patterns, Vue form submission, and various modifiers such as lazy binding, number typecasting, and string trimming to create better UIs. You will also explore best practices for integrating HTTP into Vue.js applications to create an application with dynamic data. Routing is a vitally important part of any SPA, so you will focus on the vue-router and explore routing a user between multiple pages. Next, you'll also explore state management with Vuex, write testable code for your application, and create performant, server-side rendered applications with Nuxt. Toward the end, we'll look at common antipatterns to avoid, saving you from a lot of trial and error and development headaches. By the end of this book, you'll be on your way to becoming an expert Vue developer who can leverage design patterns to efficiently architect the design of your application and write clean and maintainable code.
Table of Contents (19 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Free Chapter
1
Vue.js Principles and Comparisons
12
Server-Side Rendering with Nuxt
Index

Using Vuex


Now that we've had a detailed look at what makes up an application driven by Vuex, let's make a playground project to take advantage of these features!

Run the following in your Terminal:

# Create a new Vue project
$ vue init webpack-simple vuex-counter

# Navigate to directory
$ cd vuex-counter

# Install dependencies
$ npm install

# Install Vuex
$ npm install vuex

# Run application
$ npm run dev

Creating a new store

Let's start off by creating a file named index.js inside src/store. This is the file we'll use to create our new store and bring together the various components.

We can start by importing both Vue and Vuex as well as telling Vue that we'd like to use the Vuex plugin:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

We can then export a new Vuex.Store with a state object that contains all of our application states. We're exporting this so that we can import the state in other components when necessary:

export default new Vuex.Store({
  state: {
    count...