It’s been fun, jQuery.
With so few updates from the jQuery team(s), it’s no wonder the landscape has changed so much. With the welcome addition of front-end frameworks to the JS world, jQuery has fallen behind. Very far behind.
A new opportunity has knocked on my door, and part of it entails learning Vue, which I’d never had the chance to play with – until now. Many developers, I’m sure, fall into this category, where they’ve heard of Vue, but never actually endeavoured to use it. Why? Perhaps the answer is simple: it’s a paradigm-shift of note (or the perceived need for it just wasn’t there).
But, that’s not a bad thing, and I’m grateful that I’ve dived in head first.
Since beginning my little journey, which will soon become a part of my daily work, the once-abundant need for jQuery in every project has pretty much dissipated into thin air. The mere concept of Vue (and related frameworks, all of which I haven’t touched) makes jQuery ever so redundant in itself that looking back at it would be a futile exercise, to say the least.
The world of web development has been changing at such a rapid rate these last years that it will, very soon, be an inconceivable act to go back. Unless, of course, jQuery catches up (perhaps that’s why they’ve been so silent?).
Folks in the ProcessWire community will know that I’m bringing new life into the Module Generator, created by Nico Knoll, who seems to have been unable to visit the community due to his work commitments. The purpose of my project is to both bring the generator back to life with some needed changes in terms of recent PW releases and, more importantly for me, to learn Vue. Whilst it’s a simple app, understanding how something works can only truly be achieved by simply trying it out (this can be best-understood from the perspective of a self-taught developer). And, like I said, looking back is just not happening. Besides, if I needed something from the jQuery side of things (doubtful), there’s a package for that (like Axios, which takes AJAX to a new level).
With it, comes the learning curve. The basic concepts are easy to understand, but the more difficult ones come in when you start looking at the appropriate ways in which to decouple your code into components and modules, some of which are re-usable across projects. That concept on its own would be (and is) entirely new to anyone coming from a common jQuery background (one that’s been around for so very long now). With the help of updates to the ECMA standard, SoC is now so much easier to achieve and, wow, it even makes typical browser-based JS look ‘like a child’ in comparison. The learning curve grows when you start exploring Webpack, which compiles your code (modules, et al) down into something every browser can understand. But, once you get the hang of it (like one once did with jQuery), it can become a super-easy-to-understand routine. Laravel Mix also makes a big difference, but it’s key to understand what it does to make the routine that much easier.
Then came Vuex, which, too, is awesome. For some, it feels like a step back in terms of the reactivity system, but once you start to understand the concept, pattern, and purpose, you’re “a for away”. The basic concept is this: Apps can get complex, and so we need to be able to place data in a centralised ‘store’, whilst retaining the ability to separate concerns as much as we like. This removes the unnecessary flows of data between component chains, and helps everything ‘speak a common language’, as it were.
Haven’t even started with Vue’s router, and I’m sure that’ll be fun (looks simple enough). As I dig deeper, my workflow will change, and I couldn’t be happier. My understanding of the new ‘ecosystems’ that have surfaced over the last few years brings a whole new light into everything. This idea alone makes it worth it.
PS: I’ll be releasing the new module generator as soon as I can. The front end is pretty much complete, and now its time to work on the backend. I’m only doing this in my spare time, so please don’t be surprised if it takes a little while.