Dojo is a progressive framework for modern web apps that offers a lean, modern, and reactive alternative to React and Angular that has recently released its next major update - Dojo 7.
If the name Dojo sounds familiar, you might remember its predecessor - the Dojo Toolkit that offered a robust alternative to jQuery.
Dojo 7 brings some exciting new capabilities to the Dojo framework, focusing on its widget system that receives a significant overhaul in this release.
Widgets are Dojo reusable components that share many similarities with React Components. Dojo provides a relatively large number of premade widgets that simplify the development process while also supporting the development of custom widgets.
Dojo 7 includes improvements to both the premade widgets and the underlying widget architecture.
The premade widgets received an overhaul that included better standardization, improved theming (including a new Material Design theme), better documentation as well as the addition of a significant number of new widgets.
One of the new widgets is the password widget, a specialized solution that offers a convenient way to handle password validation while informing the user what's needed or missing.
Another is the new form widget which handles form input grouping in a very stylish way.
Under the hood, the widgets architecture gained several significant improvements that include typed widget children, improved custom elements, and a brand new data middleware that helps to share data across multiple widgets.
Dojo 7 also includes an improved process for creating and sharing widgets. The cli-create-widget command was modified to generate a skeleton widget library with all the tooling and documentation required. It is now using the newly released Dojo Parade, a brand new package for building widget documentation and examples from within your application or widget library.
In addition to the upgraded widget system, Dojo 7 also simplifies the development adds support for Custom Elements slots, a simplified routing system that allows Outlets to manage site sections, thus reducing code duplications, an optimized I18n bundling scheme that reduces download overhead and many other smaller features.
Migrating to Dojo 7 is a relatively seamless process that relays on the Dojo CLI upgrade command (cli-upgrade-app) that will automatically make the necessary changes when possible, and highlight those that require developer intervention. A complete upgrade guide can be found in the official migration documents.
Dojo is an open-source project available under the new BSD license. It is supported by the JS Foundation, an organization that also supports key JavaScript projects like jQuery, Webpack, and Lodash with legal and governance support. Significant contributions to Dojo are made by SitePen. Developers interested in contributing to the development of Dojo can find contribution guidelines and a code of conduct on the Dojo GitHub project. Developers looking to use or contribute to Dojo may also connect with the Dojo team and community on Discord.