Learning Frontend Development with Javascript and Vue 2.0

Access all articles in sprocket icon.

Published December 10, 2016 by Bill Keck.

Learning Javascript and Vue 2.0

Ok, so from time to time, I share resources that have aided me in my continuing education in programming. As those of you who follow me know, I’ve never been strong in front end development and that is something I’m currently working to change.

I recently reached out to Matt Stauffer, host of the Laravel Podcast, to see if he had a recommendation for learning frontend development. He was nice enough to make a recommendation, but before I tell you what he recommended, let me describe what I’m interested in learning.

I have found numerous tutorials online about html, css, javascript, etc, but the parts never seem to make up the whole. Yes, I can code basic Bootstrap like everyone else, but I never feel like I’m actually doing anything interesting or anything that would lead to a positive user experience.

I’m always lost when I try to conceive of the UX beyond basic Bootstrap. It’s like I want to write a beautiful sentence without having a vocabulary. Learning a word here or there doesn’t seem to help. I want to develop a sense for the flow of the language overall before I try to write anything. What does that mean in terms of UX? I don’t know, which is why I’m looking for help.

I’m a big fan of structure in learning. I’ve gotten so much from Laracasts, which we will talk about more in a minute, that I’m spoiled. I want that level of instruction in all learning.

As useful as Laracasts is, and it is incredibly useful for learning individual tools, it doesn’t help me develop the concept of UX. I want to learn and develop my UX capabilities from scratch. I want to be able to view application development from the standpoint of the frontend.

So I posed this question to Matt Stauffer and he recommended Code School, which is also online video instruction, coupled with online testing, which I really like. The cost of Code School is $29 per month, and it’s totally worth it, the quality of the instruction is awesome.

After completing a beginner course in html 5, I jumped into the javascript Road Trip series. Learning javascript is fundamental to developing a sense for frontend programming. Your application won’t be reactive without it.

I don’t know how you feel about javascript, but I’ve always hated it. Programming in javascript just always felt like a bunch of fragments thrown together in one big or small plate of spaghetti, depending on what the needs of the page are.

Recently, I started working with Vue 2, which is a javascript framework favored by many Laravel developers. It is powerful, but relatively easy to use, which is probably why it’s so popular. Vue 2 is supported by a book, the Majesty of Vue.js 2, which is excellent for learning the basics. I rate it 5 stars.

There’s also a brand new series on Laracasts for Vue 2, Learning Vue 2 step by step, which really showcases the power of Vue 2. It’s another top-notch series from Laracasts, you can’t go wrong there.

I should note that I cover the very basics of Vue 2 as well as creating an ajax-powered datagrid in my book, Laravel 5.4 for Beginners. That includes sorting, searching and pagination. But for more comprehensive learning about Vue, I recommend the Vue book and Laracasts.

With these resources, you can start to get a sense of the architecture and capabilities of Vue 2, and how it can add reactivity to your page. Reactivity is critical to modern design. The Laracasts series shows you, for example, how different components created in view can interact with each other via events. Cool stuff.

In the Code School series, which I’m still working my way through, it tackles the fundamentals of the javascript language, which is easy to overlook when you are coding patchwork in javascript. I tended just to learn what I needed for the moment and often forgot it as fast as I learned it. Now that I have more of a background in javascript, it is making more sense to me, though I still much prefer coding in PHP.

One reason why I always feel like I learn slowly is that I only feel like I know something if I really know it, not if I sort of know it. For example, for the longest time I would see references to the html DOM, domain object model, without really understanding what it is. I had just this fuzzy concept of an object. But what does that mean?

The DOM is a copy of all the html attribute tags, such as body, div, article, etc., held in memory, so that javascript can operate on it. So if you have a div with an id of “container”, for example, you can reference that div in javascript and operate on it. It’s really that simple.

This is why it’s important to study a language from the ground up. Doing so gives you a sense for how things work and why things are done a certain way.

Even as I study javascript, things are changing. ES6, also known as ECMAScript 2015, is a significant update to Javascript and has introduced new syntax and features. It’s a lot to get your head around if you are just starting. If you are not a fan of constant learning, you should have probably picked a career other than programming.

With Laravel Mix, you can easily integrate ES6 syntax and Vue.js into your applications, and there is a great Mix series on that in Laracasts.

Laravel ships with a sample Vue.js component and I cover how to implement that in Laravel 5.4 For Beginners. If you are using Laravel, you will find both Vue.js and Elixir invaluable.

But knowing all that doesn’t make you a great frontend developer. I’m still on the hunt for that. My plan now is to focus on Javascript and reactivity, then move into the more visual parts of the UX. On the javascript side, I expect this to take a year or more.

Learning programming is a journey and I feel like I’m finally well on my way to a deep dive into frontend programming. I still don’t have an artistic sense for it, but that is not my focus yet. I’m going to leave that for the very end, since I believe that in order to achieve artistic success, you must first have command over the tools that you need in order to create it. Javascript is absolutely essential for that.

Advertisements

Laravel 5.3 For Beginners Updated for Vue 2

Access all articles in sprocket icon.

Published October 23, 2016 by Bill Keck.

Laravel 5.3 For Beginners Updated for Vue 2

I’m happy to announce that Laravel 5.3 has been updated to use Vue 2.0.1, which is the current release of Vue.js. I’ve also added a couple of chapters that cover basic and advanced use of Foundation Maker, a free artisan plugin, giving you new artisan commands for code generation.

Updates to the book are free for the life of the book, just log in to your Leanpub.com account, and pull down the latest copy.

The update to Vue 2 was a hectic one for me, it came just as I released the first version of Foundation Maker, so I really had to scramble to not only update the plugin, but also the book.

One issue that came up was that I was unsuccessful in trying to update an earlier version of Laravel, 5.3.10. For some reason I couldn’t get that to work with Vue 2, so I ended up pulling a new install of Laravel, which was on version 5.3.18. Laravel started shipping Vue 2.01 as of Laravel version 5.3.16.

I have quite a few readers who will be caught in the transition, which is why I’m talking about it here. If you are not yet to chapter 11, and you are working with an install of Laravel that is below 5.3.16, then I would recommend doing a fresh install, and quickly copying the work you have already done into the new version. Otherwise the code from chapter 11 on will not work. Sometimes updating is a bit of a pain, but it’s worth it and you will not be disappointed. In the book, we build a fully searchable, sortable, and paginated data grid using Vue 2.

If you want to check the version of Laravel you are using, you can run the following artisan command:



php artisan -V

Staying current on a new release like Vue 2 is very important, in my opinion. There’s no sense in learning a new javascript framework if you are learning on a version that is already outdated. So that was a huge motivator for me to put in the long days and nights to get this update out to you.

The book is now over 700 pages in length. For those unfamiliar with the book, we cover the basics of REST with a front-end and back-end sample app, Socialite and Facebook one-click registration and login, Image management, admin access control, data grids with Vue 2, Foundation Maker, and charts with Charts.js and Vue.js. The book starts at the beginner level and moves towards a more intermediate level with Elixir, node.js and vue.js.

Thanks to everyone who has and is supporting my work. I don’t have a donate button, but if you would like to contribute, you may do so by buying one of my books, I would really appreciate it. Shares, comments, likes, and book reviews are also greatly appreciated. See you soon.

Foundation Maker for Laravel 5.3 Officially Released

Access all articles in sprocket icon.

Published Ocotber 8, 2016 by Bill Keck.

Foundation Maker for Laravel 5.3 Officially Released

Foundation Maker is a free package for Laravel 5.3 that adds 15 new artisan commands, including make:foundation, which let’s you stand up an entire working CURD model and views, with an ajax-powered, searchable, sortable and paginated data grid, written in Vue.js.

Adding Foundation Maker to your Laravel project is a snap. Just use call the following on your command line:



composer require evercode1/foundation-maker

Then add the following to your providers array in config/app.php:



Evercode1\FoundationMaker\FoundationMakerServiceProvider::class,

To see the new artisan commands, run the following from the command line:



php artisan list

Then you can parse through and see all the new make commands:

  • make:assets
  • make:master
  • make:crud
  • make:views
  • make:foundation
  • make:child-of
  • make:parent-child

There’s also corresponding remove commands for all commands except make:assets.

Please note, if you are unfamiliar with Foundation Maker, read the docs and tutorial, and note that it works best with a fresh install of Laravel due to the setup of assets. Run npm install after running the make:assets command.

For those of you who have purchased my book, Laravel 5.3 For Beginners, you will recognize the data grid from the book. The big difference is that the book is written using Vue.js 1.0.26, and the Foundation Maker code generator uses Vue.js 2.0.1.

I will be adding a chapter to the book to introduce Foundation Maker and the migration to Vue.js 2, and that update will be free to everyone who has purchased the book. I will be emailing out an announcement when that is ready and then you will be able to pull the latest version of the book.

Previously, for Laravel 5.2, I created a different tool, View Maker, which got over 600 downloads on packagist.org. Creating View Maker was a lot of fun and I learned a lot. But instead of updating that tool, I decided to make a clean break, since the application structure of Laravel 5.3 is different, and Foundation Maker utilizes Elixir and the code it produces is actual production-level code. Foundation Maker is much more efficient and production-ready than View Maker was.

Foundation Maker also has some advanced features that View Maker does not. For example, you have the ability to make your own custom templates and have Foundation Maker use those templates instead of the native ones it ships with. This can be really handy if you want to setup your templates with your own style, which is probably going to be the way to do it most cases.

Let’s say for example, you want to setup your Foundation templates, so that the controller flashes an alert to the view when you create a new record. The native templates don’t have that for the obvious reason that not everyone might want it. Personally, I might use Sweet Alert for that, someone else may choose something else entirely. With the custom templates, you can decide which one to use and simply write it into the template, so every time you create a foundation, it is included automatically.

So you get complete control over the templates, and also, you get to inject custom tokens if you wish, which is another new advanced feature. The tokens get replaced into the template with the actual value of the token. For example, the :::model::: token would return Widget if Widget was the name of your model. You don’t have to worry about the model token, that one is baked in, but if you do have something you want that is not included in the native token list, then you can create your own, which is a very handy feature.

Although Foundation Maker is incredibly easy to use, I’m going to create a video tutorial series for it. I’m also going to be adding a lot more to it, so look for exciting announcements on that.

There are 2 ideas driving my development on Foundation Maker. One is that I want to use artisan commands to manipulate my templates. I like having the code where I would normally put it, instead of a vendor folder. Some of us already use our IDE to create templates. But while you could create templates through your IDE, you can’t really chain them together in the way that Foundation Maker can. When you run make:foundation with Foundation Maker, for example, with that one command, you are creating the following files:

  • model
  • controller
  • api controller (if it does not yet exist)
  • migration
  • unit test
  • Queries folder (if it does not yet exist)
  • GridQueries folder (if it does not yet exist)
  • GridQueries/Contracts folder (if it does not yet exist)
  • GridQuery.php (if it does not yet exist)
  • DataQuery.php (if it does not yet exist)
  • appropriately named model query file
  • appropriately-named view folder
  • index view
  • create view
  • edit view
  • show view
  • Vue.js component file

The make:foundation command also appends to the following files:

  • routes.php
  • ModelFactory.php
  • ApiController (if it already exists)
  • components.js

That’s a lot of power wrapped up in one command. If you use the make:parent-child command, you get double that, one for both the parent and the child.

So the other idea driving my development on Foundation Maker is that I want to reduce the amount of time it takes to create an app. Laravel is an awesome framework, but there are still a lot of things you find yourself doing over and over that could be automated. Towards that end, I’ve only just begun. I want Foundation Maker to be able to help you stand up a full frontend, backend CRUD app in under an hour. It’s kind of a lofty goal, but that’s what I’m aiming for.

I have a lot of work ahead of me. I also plan to support Foundation Maker with free videos on how to use it, so keep an eye out for that announcement.

Thanks to everyone who has and is supporting my work. I don’t have a donate button, but if you would like to contribute, you may do so by buying one of my books, I would really appreciate it. Shares, comments, likes, and book reviews are also greatly appreciated. See you soon.

Laravel 5.3 For Beginners Book Official Release

Access all tutorials in sprocket icon.

Published September 8, 2016 by Bill Keck.

Laravel 5.3 For Beginners Book Official Release

I’m happy to announce I’ve just released my new book, Laravel 5.3 For Beginners. The book comes in at just over 620 pages, and covers a lot of ground that I did not cover in my previous Laravel books, including using Elixir and Vue.js.

The book starts out with the basics, like the previous books, and some of that will sound familiar if you read those books, but then it progresses into more intermediate code. We utilize Socialite for one-click authentication with Facebook and Github, so now we have it set up to handle multiple social providers. We have an image management trait that helps us utilize the Intervention Image package, which makes creating thumbnails very easy.

Another big difference in this book is the use of Elixir and Vue.js. I didn’t cover those in previous books because I felt they were more intermediate, and actually, Vue.js has only recently been adopted by the community to the extent that is now configured in Laravel out of the box. You will love that.

The whole Elixir implementation is easier to get going now, so we get introduced to Elixir for our asset management. But we don’t do that early in book, we save it for later, after you learn the basics.

Instead we take you step by step in building a sample application that will help you understand how the framework actually works. The early chapters are similar to my last book, but there are significant differences, mostly refinements that reflect both my personal growth as a programmer and also trends within the community. For example, while I still use the form helper for date formatting, I don’t use it for much else and we will explore the reasons for that.

Also, we are no longer using jQuery for our data grids. Instead we moved to a very robust data grid built with Vue.js, the javascript framework that is favored by so many Laravel developers, so much so, it comes setup for you out of the box, after you run npm install.

As always, I did my best to make the book comprehensive and accessible to all. Laravel is just an awesome framework, and if you are just learning, it’s a great place to start.

Thanks again to everyone who has purchased my previous books and followed this blog, I appreciate your support!

ViewMaker make:chart Command released for Laravel Artisan

Access all tutorials in sprocket icon.

Published May 27, 2016 by Bill Keck.

The make:chart artisan commands from ViewMaker for Laravel 5.2

This week new features were released for ViewMaker, which now adds a total of 12 new artisan commands to the Laravel artisan command line tool. This week we picked up make:chart, remove commands, and the ability to add slugs.

For those unfamiliar with ViewMaker: It’s an artisan plugin installed via composer. It’s built to supercharge workflow for standing up complete foundations of code, everything from model and migration to controller and factory method for seeding. It even creates a unit test for your create form, and of course it creates views, with the option of a fully working datagrid.

You can build all of that in under a minute, including migrating and seeding the db table. It’s a lot of fun to use.

A quick reminder on how to install via composer, just run:



composer require evercode1/view-maker

Then in your config/app.php providers array, add the following:



Evercode1\ViewMaker\ViewMakerServiceProvider::class,

You can also refer to the docs, which have extensive descriptions and a workflow tutorial.

Before we talk about the make:chart command, let’s get caught up on the other big improvement, the slug option for make:foundation, make:crud, make:parent-child, and make:child-of.

Let’s do a Widget model example and run a foundation. Please note, you should use the make:master page to set up your master page with all the dependencies you need for the make:foundation command to work. See the docs for instructions on that, it’s very simple.

So assuming your master page has the dependencies, you can run the foundation command as follows:



php artisan make:foundation Widget master vue slug

In the above, Widget is the model you want to create, master is the name of your master page, and vue is the template type. Except for the slug, that is what was in the earlier versions of ViewMaker, which stands up the routes, model, controllers, factory method, unit test, migration, and views for a fully working, searchable, sortable, paginated datagrid in vue.js, all in one go.

What’s new is the slug flag, which defaults to false, so if you don’t want it, you don’t have to include it. But if you do want slugs on your show view, just include it like we did above, and you will get a fully-formatted and functional slug for all records, so that comes in handy.

So in this case if your first widget record had a name of ‘my first widget’, your show url would look like the following:



http://www.yourapp.com/widget/1-my-first-widget

We use the convention of the id, followed by the slug to make sure there is no duplicate content. You can of course change that to suit your needs.

ViewMaker also now features remove commands to make stepping backwards simple. For example:



php artisan remove:foundation Widget

When removing, we only need to supply the model name. This is really helpful, especially if you made a typo in creation of the foundation. You can just remove it and then do the correct command, and still get it done in under a minute.

All in all there are 5 remove commands, which makes stepping backwards on most commands very easy. Right now, however, if you want to step backwards on make:parent-child, which is essentially two related foundations, use the remove:foundation twice, once for each model.

Ok, so onto the really big feature. ViewMaker now has a make:chart command, which will stand up a vue.js implementation of chart.js. After making a foundation, which is a dependency for the chart, just run the following command:



php artisan make:chart Widget

This will create a fairly advanced chart for you and place it at the top of your index page. You can change that to suit your needs, but that is where it will default to.

The chart UI allows you to select chart type, bar or line. You can also select the following dataperiods:

  • 1 year
  • 90 days
  • 1 month
  • 1 week

Your results will be pulled from your database and displayed with the proper labels.

Formatting the data for charts is a bit of a pain. There are a lot of ways you can do it. Some people prefer to do the formatting in javascript, while others prefer php. I chose the php route, since it’s my primary cdoing language.

The formatting takes place in the ApiController, which the make:foundation command builds for you. It’s a fairly big method, and you are free to extract parts out to your model or other classes to suit your own taste. The code generated by ViewMaker gets you up and running quickly, but you should do some housekeeping by organizing it with whatever format you are comfortable with. If the project is small, you can leave it as is.

The main thing is you get a working prototype and since there are not that many out there in vue.js, this can be a big help in getting started and learning how to work with it. It’s actually fairly easy to work with, once you know your way around it.

While the chart works right out of the box, you’ll want to organize your assets. I don’t extract out the js and css for you, you have to do that on your own. The reason for that is that I have no way to know how you are organizing your assets, whether you are using Elixir or not, so I leave those decisions to you.

Ultimately, using Elixir is probably the best choice, if you are ready to work with that. Consult with Laracasts for how to use Elixir, they have an awesome series on that.

All of ViewMaker features a very minimal bootstrap implementation, which leaves a lot of decisions up to you on how you want to customize it. The bootstrap that it does have is enough for you to get a clear idea of everything, while at the same time, keeping it simple, so you can do your own design.

Well, that’s it for now. More will be coming…

I hope you find ViewMaker useful. I don’t have a donate button, but If you would like to support my work and learn more about Laravel, you can do so by buying one of my books, Laraboot: laravel 5.2 For Beginners, I really appreciate it.

vue.js paginated datagrid powered by ajax and Laravel 5.2

Access all tutorials in sprocket icon.

Published May 9, 2016 by Bill Keck.

I’ve been working on ViewMaker, which is a free plugin for Laravel artisan, and one of my main objectives with the make:foundation command was to stand up a working datagrid that was fed by an ajax call with Laravel.

I worked really hard to make a paginated set of data results that has column sorts and complete control over the pagination. The pagination navigation features a page by page link, previous and next buttons that only show when appropriate, first and last buttons, and a go to page input and button.

I also added an ajax-powered search box that queries on a keyup event. This produces column sortable, paginated results as well. All of this is done with vue.js, which is a javascript library that many Laravel developers are using these days.

One of the things I really struggled with was I couldn’t find a working example to follow. Luckily, I had bought The Majesty of View recently, which is an excellent book on vue. The book is really great for getting started with vue, but it wasn’t explicit enough with its pagination example for me to use it for my laravel datagrid.

Instead I used the datagrid example on vuejs.org as a starting point and built it up from there. Truth be told, I hit up one or two of the enterprise developers at work for some hints too, since I’m relatively new with vue. There’s nothing quite like working on a datagrid to move your js skills along.

Since I followed the datagrid from the vue.js example, I built it with a component, so this was a real crash course in vue.js. You can check out my work by installing the ViewMaker plugin, which will let you create a working version of the datagrid, along with the api controller and everything else you need in under a minute. Check out the docs on ViewMaker if you want to learn how to do that.

I’m going to do a deep dive tutorial on all this, which will probably appear in one of my books, since it’s too much for this blog and wordpress doesn’t let me publish js code snippets.

If you do play with ViewMaker’s datagrid, keep in mind that you need to run vue.js not vue.min.js, otherwise you don’t get important warnings and error messages. Also Chrome has a dev tools plugin for vue, but you also need to be using the not minified version to use that.

I’m going to be building more features into ViewMaker, which I will be announcing on this blog. My goal is to make ViewMaker an artisan plugin that you can’t live without.

Click on the sprocket icon at the top of the page to see all my Laravel articles and tutorials. Please comment, share, like and review if you can, thanks.

I don’t have a donate button, but If you would like to support my work and learn more about Laravel, you can do so by buying one of my books, Laraboot: laravel 5.2 For Beginners, I really appreciate it.

Majesty of Vue.js book Released and it’s Awesome!

Access all tutorials in sprocket icon.

Published April 16, 2016 by Bill Keck.

Majesty of Vue.js now available at Leanpub

My friends, the long dark javascript nightmare is coming to an end. At least that is what it feels like. We live in an exciting time because, with the release of ECMA script 6, javascript is finally starting to resemble syntactically consistent language.

Now I may just be speaking from personal experience, but I have always hated javascript. And when I say hated, I mean hated with a passion. It just seems like such a mess. Even the very idea of stuffing everything into a single file that the browser loads just seemed ridiculous. And then of course there is the spaghetti itself…

Well, things are changing quickly with ECMA script 6 finally supporting modules that let us separate our code. We’ll have to see how long it takes for that feature to become common in browsers.

In the meantime, Laravel Elixir can transpile ECMA script 6 into plain javascript for us, another amazing feature of Laravel. Laracasts has a very good series on elixir that can get you up and running quickly, so I recommend checking that out.

If you are like me, you follow Laracasts religiously, not only for Jeffery Way’s awesome tutorials on PHP and Laravel, but also for current trends. So I found it really interesting that a while back Jeffery started talking about the Vue javascript framework. He predicted it would be big. He was right.

To be honest, when I first saw it, a lot of it went over my head. The series moved quickly and although the videos were interesting, I wasn’t retaining much, always a problem when I’m digesting a lot of new information.

Since we were starting to use Vue at work, I felt the need to start working with it. I incorporated a basic data grid, written in Vue in my ViewMaker plugin for artisan. But I was frustrated that I didn’t know how to include the same functionality as my datatables jquery version, so I started looking around for online tutorials. I watched the Laracasts series again.

I pretty much realized that I wasn’t getting anywhere. That’s no knock on the videos, they’re great, but I didn’t know how to move towards what I wanted. And because Vue is fairly new, I couldn’t find any good examples online.

So this last weekend, I found myself googling “Vue.js book”. And what do you know, just 4 short days ago, a book is released on Vue called the Majesty of Vue by Alex Kyriakidis, Kostas Maniatis and Evan You. I give the book 5 stars, it is extremely well-written.

For anyone who doesn’t know, Even You created Vue.js, and 30% of the proceeds of the book go to Evan You. Hopefully this will help him continue his great work.

I don’t normally refer to a lot of technical books on this site. It’s not because I don’t read them. Most I don’t like because they are riddled with errors, and I try to avoid saying negative things about other people’s work.

So it’s great to be able to talk about the Majesty of Vue because it is an excellent book on Vue js and covers all the important topics, standing you up from scratch in a very intuitive way.

I really loved this book because they gave me little details that stopped me from being tripped up.

For example, they take the time to explain that the instance of Vue will only bind to the first instance of the element named in the Vue constructor. And in their examples, they were binding to Vue to the bootstrap container class.

Now I wanted to follow along in the book by doing everything from inside a laravel app, so I could be comfortable with putting the @ sign in front of the curly braces, since Vue uses the same braces as Blade and you have to escape them or blade will try to parse them. For example, if you had a name variable in your Vue data that you wanted to access inside of blade:



@{{ name }}

The problem I ran into by using blade was that I was already calling the container class from my master page, so when I copied it in again from their examples, it was actually the second instance of the element, not the first, so Vue was not bound to it and it did not work. But because they didn’t overlook a small detail and warned me in advance of that behavior, I instantly knew what the problem was.

As someone who is trying to make a lot of progress with Vue quickly, this was the right book at the right time.

I should point out that the book itself is a work in progress and currently sits at 144 pages, but I have to say, they are a very worthwhile 144 pages. I’m looking forward to seeing the book completed.

I don’t want to say that learning Vue is easy, even though it probably is if you are already proficient in javascript. I don’t live that world however. Even though I’ve read books on javascript, I always felt like a stranger in a strange land, like I was always trying to finish a conversation that someone else had started. But Vue is very digestible. It makes sense. It looks like programming. It has a syntax you can remember.

WordPress will strip out my div tags, but this will give you the idea:


create a div with an id="app"

//vue operates on elements between the opening and closing tag


//and in your script section: 

new Vue({ 

// binds the instance of vue to the element with an id of app 

el: '#app' 

});

That’s all it takes to wire it together, as long as you have a call to the vue.js file via cdn or local file. It works right out of the box.

As someone who has struggled with javascript, I feel like I’m actually learning something. I’m excited about the progress I’m making. I even wrote my first custom filter recently, and it just worked beautifully.

I won’t try to tell you all the great features of Vue, so many others are better at it than I am. I’ll just sum this up by saying that others are calling it the best javascript framework out there, I think they are probably right, and the Majesty of Vue is the perfect book to get you up and running. And at the same time, you’ll be supporting development of the framework, so it’s a win win for everyone.