Есть новая версия Dojo, JavaScript-фреймворка, которая была переписана и поставляется с новым интерфейсом командной строки и утилитами для подключения Dojo к популярным стандартам и утилитам.
Dojo был первым фреймворком JavaScript с открытым исходным кодом, а в версии 2 используются ES2015 +, TypeScript и другие современные и появляющиеся стандарты и передовые методы. Его цель — сделать код совместимым, чтобы разработчики не были привязаны к специфике какой-либо одной инфраструктуры. Он имеет компонентную архитектуру и виртуальную модель DOM.
Разработчики говорят, что хотят упростить использование таких функций, как веб-компоненты, и появляющихся веб-стандартов, таких как Intersection Observers, Resize Observers и Web Animations, при сохранении эффективной реактивной архитектуры. Они говорят, что постоянное соответствие современным стандартам — лучший вариант для продления срока службы создаваемых вами приложений.
Новая версия включает реактивную систему виртуальных виджетов на основе DOM. Виджеты — это основные строительные блоки пользовательского интерфейса Dojo 2. Они объединяют визуальные и поведенческие аспекты компонента в один элемент. Эти аспекты инкапсулированы в реализации виджета. Система виджетов включает в себя мета-провайдеров для сохранения реакции на такие вещи, как анимация, фокус и события изменения размера.
Новый интерфейс командной строки описывается как набор пакетов, обеспечивающих архитектуру интерфейса командной строки, обеспечивающую модульный подход к созданию команд и работе с ними. Имеется инструментальный интерфейс командной строки для создания оптимизированных приложений, в которых автоматически предусмотрено разделение кода и рендеринг во время сборки.
Еще одно улучшение новой версии — более четкая поддержка веб-компонентов, включая полную поддержку импорта и экспорта пользовательских элементов для использования в Dojo 2 и других фреймворках.
Также был добавлен предсказуемый и согласованный контейнер состояния для приложений JavaScript. Разработчики использовали идеи из архитектур Redux и Flux при проектировании контейнера, включая встроенную поддержку общих шаблонов, асинхронного поведения и отмены.