dojo dragon main logo

What's coming up

Future

The Future

Future features and ideas for Dojo.

  • Server side rendering support.
  • Enhanced VDOM scheduler for better perceived performance
  • Built-in VDOM windowing support
  • New CLI testing command dedicated for unit tests
  • Zero config code splitting based on build time rendering heuristics for the critical path
  • Dojo application dashboard, building on the existing dojo bundle analyzer
  • Dojo browser development tools
July 2021

Dojo 8

The Dojo framework 8.0.0 release.

Breaking Changes

Enhancements

  • Support for TypeScript 4.1 (#892)
  • Support for custom resource APIs (#878)
  • Create resource templates based on the Data and Api type of a widget (#889, #891)
  • Support nested transforms when resources are passed down through multiple widgets (#880)
  • Support special head tag for rendering node in the document head (#805)
  • Wildcard routing (#766)
  • Support redirect in routing configuration (#867, #868, #869, #900)
  • Refines the create template function APIs (#866)
  • Add intrinsic element types (#796, #814)
  • Re-use DOM nodes when moving widgets and nodes in a list (#799)
  • Allow numbers in vdom (#781)
  • Support optional query params in routing configuration (#901)
  • Add onUpdate and onDetach APIs for dom pragma (#829)
  • Lazy load custom elements on demand (#825)
  • Adds support for event proxying and event options (#856)
  • Add map shim to Outlet (#860)
  • pending API to expose the state of asynchronous icache setters (#862, #865)
  • Custom element resource support (#815)
  • Start to decouple dom completely from vdom (#883)
  • Add block middleware mock (#798)
  • Allow finding and modifying wrapped widgets in functional children (#780, #851)
  • Use the middleware key as the middleware id in the test renderer (#859)
  • Support testing widgets with nested typed children (#898)

Bug Fixes

  • Expand types for insert after/before (#802)
  • Only run the inert middleware when the properties have been changed (#888)
  • Add function to create "typed" version of middleware (#819)
  • Rendering for multiple nested head and body nodes (#812)
  • Cache the function wrapper, no need to recreate each render. (#903)
  • Ensure that resources are correctly initialised even if the resource already has been previous created. (#861)
  • Make inputs partially only controlled (#887)
  • Take in to account virtual nodes when hydrating an existing DOM structure (#896)
  • Always pass the target attribute to the anchor tag for Link regardless of whether the event is intercepted (#907)
  • Register the messages for all locales (#908)
  • Fix mock middleware types (#822)
  • Handle ignored children in decorate (#840)
  • Wrap children result in an array if not already in one (#844)
  • Support setting properties on named children that are a render result for assertions (#854)
  • Update insertSiblings type definition (#872)
  • Pass inserted flag correctly to deferred props in test renderers (#881)
  • Fix the typings for the arguments on the test renderer child api (#871)
June 2020

Dojo 7

The Dojo framework 7.0.0 release.

Breaking Changes

  • Remove the Projector mixin (#549)
  • Deprecate cache with optional flag on icache to skip validation (#618)
  • Decouple Outlet concept from referencing unique routes (#716)
  • New Dojo test renderer (#710)

Enhancements

  • Typed children support for function-based widgets (#544, #554, #561, #582)
  • Add isExact options to ActiveLink (#520)
  • Live binding to function-based widget properties and children (#564, #665)
  • Check attached node is in the body (#579)
  • Provide helper middleware api type (#580)
  • Enable cache eviction with the icache (#605)
  • Inert shim (#619)
  • Support multiple CSS transition classes (#628)
  • Inert middleware (#623)
  • focus middleware testing mock (#635)
  • validity middleware testing mock (#631)
  • Type nls keys from the i18n format function (#610)
  • Support passing null to the domNode on .mount( (#652)
  • Influence property values with diffProperties middleware (#653)
  • Support specifying an additional property to be considered part of the widget key (#661)
  • Support automatic and lazy loading of CLDR data in i18n (#657, #677, #686, #693, #694, #724)
  • Unmount an application (#680)
  • Dojo Resources (#672, #778)
  • Support setting and changing theme variants at runtime (#684, #711, #720)
  • "slot" support for Dojo custom elements (#714, #721)
  • Object and array attribute support for custom elements #756
  • Forwards-compatibility for TypeScript 3.8 (#719)
  • Configure document title on route change (#725)
  • Skip setting the route when working with build time rendering and using the development server (#729)
  • On-demand Build Time Rendering (#246)
  • Set document title for build time rendered pages (#260)
  • .dojorc schema validation for @dojo/cli-build-app (#324)

Bug Fixes

  • Run key checks synchronously (#547)
  • Ensure initial properties flag is set false (#539)
  • Call diffProperties immediately when first registered (#572)
  • Fix setting state in focus middleware (#575)
  • Do not invalidate when checking if a widget should focus (#583)
  • Make assertion templates immutable (#587)
  • Ensure mixin properties are inferred correctly when using TSX (#594)
  • Run comparators when using harness.expect with an actual render output (#602)
  • Allow unsupported nodes to be ignored from harness's assertRender (#599)
  • Fix inserting nodes when using the body tag (#640)
  • Fix out of order rendering bug (#642)
  • Return injected theme as the widget's theme property (#659)
  • Support a mixture of arrays and single children for TSX (#671)
  • Update diff type for Themed mixin to be auto (#685)
  • Invalidate for the icache.delete and icache.clear API (#695)
  • ActiveLink support for matching query params (#699)
  • Widgets can render twice during a single scheduled render (#712)
  • Spread widget properties for function-based widget in vdom (#717)