I started my first job as a Java EE programmer at the end of 2007. I still remember my friend Giuseppe saying, You don't like JavaScript, do you? and me answering, No, I don't. Each time I write something in JavaScript, it doesn't work in all versions of Internet Explorer... not to mention Firefox! He just replied, Have a look at jQuery. Today, I like to call myself a JavaScript programmer.
Since then, web development has evolved a lot. A number of JavaScript frameworks became popular and then declined because new frameworks emerged. You may think that it is not worth learning new frameworks since they will eventually decline in popularity. Well, in my opinion, that is not true. Each framework added something useful to web development, something that we still use. For example, jQuery made use of JavaScript that was so simple that we started moving client logic to the browser instead of rendering everything server-side.
Today, we write progressive web applications that are complex applications with web user interfaces. This complexity requires discipline and best practices. Fortunately, big companies such as Facebook, Google, and others have introduced frameworks and guidelines to help web programmers. You may have heard about Google's Material Design or Facebook's Flux.
In this chapter we will focus on the following:
- Model-view-controller (MVC) problems, and using Facebook Flux architecture to solve these problems
- Flux fundamentals
- What Vuex is
- Architectural differences between Flux and Vuex
To understand this book, you need a good knowledge of Vue.js and JavaScript, a basic understanding of ECMAScript 6, and a very basic knowledge of webpack. In any case, almost all the concepts used here, Vuex and otherwise, are explained.
After explaining the Flux concepts, this book will help you understand how Vuex implements these concepts, how to use Vue.js and Vuex to build professional web applications, and finally how to extend Vuex functionality.