Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Андрей Данилин - Переиспользование компонентов ...

Ilya Kaznacheev
October 13, 2018
73

Андрей Данилин - Переиспользование компонентов в SAPUI5

Создание многокомпонентных приложений с использованием фреймворка SAP UI

Ilya Kaznacheev

October 13, 2018
Tweet

Transcript

  1. Controls • Отображается на View • Одна из самых небольших

    частей приложения • Не должно создавать модели данных и обращаться к Backend’у
  2. View, Fragment • Отображает набор Controls на странице • Не

    должно создавать модели данных и обращаться к Backend’у • Обычно зависит от контекста Controller • Относится к View • Отвечает за поведение приложения • Наследование от BaseController
  3. Modules • Набор независимых функций • Не работает с Backend

    Library • Содержит объекты подготовленные к повторному использованию • Может внешней библиотекой
  4. Component • Связывает модель данных, отображение и поведение • Определяет

    и описывает ресурсы доступные для работы • Требуется загрузка для использования
  5. Application vs Component • Views, Fragments, Modules, Libraries – не

    генерируют запросы к внешним сервисам и не определяют модели данных • Controllers – генерируют запросы во вне, могут определять модели данных • Component – объединяет отображение, логику поведения и модель данных • Application (root component) – указывает, что данный компонент выступает в качестве самостоятельной единицы исполнения
  6. • Application – состоит из одного или нескольких Components и

    отображает что либо на странице; • Component – может содержать другие компоненты, может ничего не отображать Application vs Component
  7. Component • Обязательные поля в manifest • Ссылается на относительный

    путь библиотеки • Описывает сервисы с которыми работает • Может содержать другие компоненты
  8. Interface of component • Может объявлять properties, aggregations, associations и

    event (так же как Control) • Данные переданные в конструктор не отображаются как параметры в методе init, а содержатся в объекте ComponentData (getComponentData) • UIComponent создаёт контент (createContent) • Возможность определить RootView • Routing – дополнительный параметр “parent”
  9. версии < 1.50 версии >= 1.50 • UIComponent должен иметь

    привязку к отображению (контейнер ComponentContainer) • Container изолирует компоненты друг от друга sap.ui5 in manifest: Component
  10. manifest.json: View.xml: • Приложение тоже компонент и его так же

    можно встраивать в другие приложения • Отсутствует интерфейс и предполагается независимость таких приложений друг от друга Component
  11. Передача данных между компонентами • Правильный способ – передача модели

    от родителя (propagated model) • Другие способы – через объект Window, eventBus, core model Propagated model ComponentContainer.propagatedModel = true – определяет, что модели объявленные в родительском компоненте будут переданы в дочерний
  12. Передача данных между компонентами • Самый неправильный способ, но тоже

    возможный Window Core model • Недоступно напрямую в дочернем компоненте
  13. Передача данных между компонентами • Позволяет защитить данные от изменений

    из вне • Не нужно объявлять события в компоненте • Не забываем убирать слушателей EventBus