Getting your Dojo on
Dojo has been around for quite a long time, since around 2004. Dojo is not an MV-something framework in the same way as Backbone or Angular. Although Dojo has all the bits to do so if you wanted to.
Templates for life
A big complaint people make about Dojo is that it’s not jQuery. Yeah, I don’t know what to tell you. jQuery is great and is widely adopted and has a great simple API, but Dojo can do all that too. Dojo makes the bits more modular though, so you have access to dojo/query, dojo/NodeList and dojo/dom-construct among others that can handle tons of DOM manipulation. Dojo can even do animations if you want.
Dojo even comes with a robust Promise library that can make dealing with async tasks a breeze. You could wait for a single Promise or what for a whole group of Promises, it doesn’t matter, Dojo has it all built in.
An Event for every occasion
Dojo has always had some great utilities for event listening. The old way of listening for events in Dojo was via dojo/connect, which worked awesome for it’s time. Dojo also has a great module called dojo/aspect which has all kinds of neat tools like after, before, and around. Dojo also introduced a more familiar dojo/on event handling system to listen for DOM or custom events. Combined with dojo/Evented and you have an event handling toolkit that’s tough to beat. On top of all that, Dojo comes with a dojo/topic module that provides pub-sub capabilities for your applications.
Dojo even has an entire area dedicated to experimental features called DojoX. This area is admittedly a crap shoot at times, but much of these modules have been thoroughly tested such the Graphics and Effects section that has proven useful to me in the past.
If you build it
A complaint about Dojo is that it’s too big. A complaint about AMD is that too many file downloads is a hindrance to browser performance. AMD modules are meant to be built in some fashion to minimize these issues. You could use the Dojo build tools to optimize your applications and only load what you need in the most efficient way possible. Granted, I don’t have a happy history with Dojo builds, thanks to the good folks at Utah AGRC, I can get something going now.
Dojo gets a lot of complaints about the documentation and it’s not unwarranted. The tutorials are a great place to start and get familiar stuff. When you need a little more details, dig into the Reference guide. If you need nitty-gritty, the API documentation might be the place to look. Finally, if you really need to figure something out, go to the source, which I do on numerous occasions. Check out the Sitepen blog for some useful Dojo tips as well. Pluralsight even has a course on Dojo Fundamentals that I found to be a great starter.
Don’t listen to me
You can also see this neat talk from a couple of years ago called Dojo already did that.