Dojo provides a holistic approach to engineering modern web applications while remaining progressively modular in which aspects a project may utilize. The Dojo framework scales with the complexity of an application and allows building anything from simple pre-rendered websites all the way up to enterprise-scale single-page web applications, including options for progressive web apps that approach native app experiences across a variety of device types.
Dojo offers a variety of framework components, tooling and a build pipeline that together help address many end-to-end web application development concerns.
Manage complex applications
- Develop simple, modular components known as widgets that can be assembled in a variety of ways to implement increasingly complex requirements.
- Connect widgets using reactive state management and data flows, allowing the Dojo framework to efficiently handle rendering updates when application state changes.
- Make use of centralized, command-oriented data stores for advanced application state management.
- Allow user navigation within Single-Page Applications (SPA) via declarative routing, with history support.
- Disable functionality that is still being developed through feature toggle detection - even elide unused modules at build time to help minimize application delivery size. Write applications that adapt to running within a browser or on a server.
Create efficient applications
- Avoid costly DOM operations and layout thrashing by declaring widget structure through a Virtualized Document Object Model (VDOM).
- Simplify resource layering and bundling to minimize Time-to-Interactive (TTI) for the subset of an application a user actually needs. The Dojo framework can automatically convert imports to be lazily loaded when modules and their dependencies cross bundle boundaries.
Create global applications
- Develop themeable widgets and applications to help isolate presentational and functional concerns, and allow for an easy way to achieve consistent presentation across a full application.
- Make use of a suite of user interface (UI) widgets that support internationalization (i18n), accessibility (a11y) and theming out-of-the-box.
- Use an internationalization (i18n) framework to support multiple locales, including optional advanced message formatting through Unicode CLDR.
Create adaptable applications
- Develop progressive web applications (PWA) that support features similar to native device apps such as offline usage, background data syncing and push notifications.
- If required, projects with bespoke needs can opt-out of Dojo’s build pipeline in favor of their own solution, and instead only use pieces of the framework that are needed.
Speed up development
- Bootstrap new projects and perform ongoing builds and validation using a simple command-line interface (CLI), getting developers immediately productive within a type-safe, opinionated build pipeline that favors industry best practices.
- Quickly scaffold custom widgets that support the same range of features as the core widget suite, including custom themes.