DevGang
Авторизоваться

Что нового в Ember Octane

Ember.js - это основанная на MVC JavaScript-инфраструктура с открытым исходным кодом, подходящая для создания крупномасштабных клиентских приложений. Она помогает разработчикам работать более продуктивно и поставляется с предварительно сконфигурированным почти всем необходимым для запуска приложения.

Официальный сайт описывает Ember.js как:

Производительный, проверенный в бою фреймворк JavaScript для создания современных веб-приложений. Он включает в себя все необходимое для создания многофункциональных интерфейсов, которые работают на любом устройстве.

Одним из преимуществ Ember.js является его обратная совместимость. Это позволяет легко интегрировать новейшие функции платформы в ваши приложения, не сталкиваясь с серьезными изменениями.

В своем последнем выпуске Ember Octane, который был представлен как Ember 3.15, поставляется с множеством функций и предоставляет обновления для компонентов и системы реактивности Ember. Эти изменения включают в себя:

  1. Glimmer компоненты
  2. Реактивность мерцания
  3. Многоразовое поведение DOM с модификаторами
  4. Полностью обновленные учебники и руководства по компонентам
  5. Улучшенный инструмент

Что такое Ember Octane?

Согласно его документации:

Ember Octane описывает набор новых функций, которые, взятые вместе, представляют фундаментальное усовершенствование того, как вы используете Ember.js. Он имеет современные, оптимизированные компоненты и управление состоянием, что делает создание веб-приложений увлекательным. Благодаря беспроблемной совместимости существующих приложений команды могут переходить в своем собственном темпе, а разработчики, создающие новые приложения, начинают с того, что предлагает Ember.

Давайте посмотрим на некоторые из новейших функций, которые были поставлены в последней версии платформы.

Glimmer компоненты

Раньше в Ember была однокомпонентная система, в которой вам приходилось настраивать «корневой элемент» с использованием микросинтаксиса JavaScript:

import Component from '@ember/component';

export default Component.extend({
  tagName: 'p',
  classNames: ["tooltip"],
  classNameBindings: ["isEnabled:enabled", "isActive:active"],
})

С компонентами Glimmer вы можете попрощаться с этим, поскольку он позволяет вам создать компонент без корневого элемента вообще. Это значительно упрощает создание корневых компонентов и устраняет особые случаи, связанные с наличием второго API только для работы с корневым элементом компонента.

Ваши компоненты теперь можно переписать так:

<p class="tooltip {{if @isEnabled 'enabled'}} {{if @isActive 'active'}}">
  {{yield}}
</p>

Вы также можете создать компонент без какого-либо корневого элемента, чтобы повысить производительность, и он будет работать следующим образом:

<p>{{yield}}</p>
<hr>

Реактивность мерцания

Реакционная способность - это способ, которым современные платформы JavaScript обнаруживают изменения состояния, и как они эффективно распространяют изменения через систему. Очень хороший пример - как DOM автоматически обновляется при изменении данных в нашем приложении.

Реактивность, согласно Википедии:

Это парадигма программирования, ориентированная на потоки данных и распространение изменений. Это означает, что с помощью этой парадигмы можно легко выражать статические или динамические потоки данных, а также сообщать, что существует предполагаемая зависимость в ассоциированной модели выполнения, что облегчает автоматическое распространение измененного потока данных.

Ember Octane предлагает более простую модель реактивности, называемую «отслеживаемые свойства», которая обозначается аннотацией @tracked. Добавление @tracked к свойству класса делает его реактивным, так что, если есть какое-либо изменение в свойстве, любая часть DOM, которая использует это свойство, будет обновляться автоматически.

Многоразовое поведение DOM с модификаторами

Еще одно обновление модели компонентов Ember - это модификаторы элементов, функция, позволяющая создавать многократно повторяющееся поведение DOM, которое не связано с каким-либо конкретным компонентом. Модификаторы похожи на то, как работают миксины, и должны заменить классические миксины, поскольку вам не придется иметь дело с такими проблемами, как конфликты имен.

Например, предположим, что у нас есть сторонняя библиотека, которая предоставляет функции activateTabs и deactivateTabs, обе из которых принимают элемент. В классическом Ember вы можете написать миксин так:

import Mixin from '@ember/object/mixin';

export default Mixin.create({
  didInsertElement() {
    this._super();
    activateTabs(this.element);
  }

  willDestroyElement() {
    this._super();
    deactivateTabs(this.element);
  }
})

И тогда вы будете использовать его в таком компоненте:

import Component from '@ember/component';

export default Component.extend(Tabs, {
  // ...
});

С помощью модификаторов элементов этот блок кода может быть переопределён. Вот как выглядит наш миксин Tabs при переопределении в качестве модификатора:  

import { modifier } from 'ember-modifier';
export default modifier(element => {
  activateTabs(element);
  return () => deactivateTabs(element);
});

Вы можете использовать модификатор для любого элемента, используя синтаксис модификатора элемента:

<div {{tabs}}></div>

Модификаторы элементов очень просты в использовании. Мы просто создали функцию, которая принимает элемент, активирует его и возвращает функцию-деструктор, которая будет работать, когда Ember разрушит элемент.

Полностью обновленные руководства и руководства по компонентам

Команда Ember также пересмотрела документацию с помощью учебника Super Rentals в качестве руководства по обучению способу Octane создания приложений Ember.

Руководства также подверглись значительному обновлению, подняв компоненты и устранив непонятную организацию (например, разделение шаблонов и компонентов). Новые руководства лишают внимания контроллеры, которые менее важны в Octane.

До Octane:

После Octane:

Улучшенный инструмент

Для Octane инспектор Ember обновлен для поддержки первоклассных функций Octane, включая отслеживаемые свойства и компоненты Glimmer.

Обновленный инспектор устраняет дублирующиеся понятия и устаревший язык (например, «View Tree»). Он также имеет множество визуальных улучшений, включая новую всплывающую подсказку о компонентах, которая лучше отражает идиомы Octane. Также обновляется всплывающая подсказка для компонента, которая устраняет давнюю проблему с физически небольшими компонентами.

Основы использования

Давайте посмотрим, как мы можем начать работать с Ember Octane.

В этом руководстве предполагается, что у читателя есть следующее:

  1. Node.js 10x или выше
  2. Yarn / npm 5.2 или выше, установленных на его ПК

Установите инструмент Ember-CLI, этот набор инструментов для Ember.js, который поможет вам загрузить проекты Ember на лету.

Установите инструмент CLI с помощью следующей команды:

npm install -g ember-cli

Установка пакета Ember CLI глобально дает нам доступ к команде ember в нашем терминале, команда ember new помогает нам создавать новое приложение.

Затем создайте проект ember с помощью команды new:

ember new ember-quickstart

Эта команда создаст новый каталог с именем ember-quickstart и настроит новое приложение Ember со всеми необходимыми файлами и конфигурациями для начальной загрузки проекта внутри него:

Перейдите в каталог приложения:

cd ember-quickstart

Запустите сервер разработки:

ember serve

Вы должны получить что-то похожее на этот запуск http://localhost:4200 после выполнения команды ember server:

Вывод

Ember Octane приносит обновления, которые помогут вам создавать еще более мощные приложения. Хорошие новости - вам не нужно менять все приложение, чтобы использовать функции Octane! Все функции доступны для вас, по одной части за один раз.

Источник:

#JavaScript #Ember.js
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Напиши статью и выиграй годовую подписку на Яндекс плюс или лицензию от Jet Brains

Участвовать