На этой неделе я научился создавать порталы в Angular.

Проблема

Такие фреймворки, как Angular, Reactjs и Emberjs, позволяют разработчикам интерфейса легко писать чистый, повторно используемый и поддерживаемый код. Они достигают такой возможности повторного использования, предоставляя API для инкапсуляции аналогичных функций в компоненты.

Компонент - это соединение / комбинация пользовательского интерфейса (UI) и управляющей логики, которая оживляет пользовательский интерфейс.

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

Например, вы хотите разрешить клиенту подать заявку на страхование после того, как он заполнил необходимую информацию.

  1. Когда пользователь открывает сайт, вы показываете ему объяснение того, что вы продаете, и кнопку «Получить расценки», чтобы отправить его в раздел продуктов.
  2. После того, как он / она предоставит необходимую информацию, появится кнопка «Подать заявку сейчас».
  3. Теперь, если он / она решит вернуться в раздел информации, им будет удобно увидеть кнопку «Применить сейчас» вместо кнопки «Получить предложение». .

Иллюстрация

Решение

Чтобы реализовать этот представленный случай (пример выше), нам нужен способ нарушить инкапсуляцию компонента (или, по сути, объявить часть пользовательского интерфейса в одном компоненте, а затем отобразить это в другом компоненте).

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

Reactjs предоставляет встроенный API для порталов и есть сторонняя библиотека для Emberjs

Выполнение

Заявление об ограничении ответственности: приведенный ниже код является неполным и предназначен только для демонстрации.

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

  • Поместите пользовательский интерфейс внутрь компонента-владельца и оберните его внутри «портала».

  • Создайте портал и предоставьте ему доступ к контейнеру.

  • Теперь, если вы откроете свое приложение, пользовательский интерфейс должен появиться в контейнере, и любое действие, которое вы предпримете, должно выполняться компонентом-владельцем.

Вывод

Концепция портала позволяет разработчикам удовлетворять требованиям UX без нарушения механизма инкапсуляции Framework.

Ресурсы