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

Создание и использование компонента
Чтобы создать и использовать компонент в своем приложении, следуйте приведенным ниже инструкциям:
- Выберите меню Page Selector в меню навигации. Если вы выбрали представления Stack Pages и Widget Tree, откройте меню Widget Tree.
- Нажмите на значок Новый компонент. Откроется всплывающее окно, в котором вы можете найти готовые шаблоны.
- Чтобы начать с нуля, нажмите + Создать пустой (в разделе Пустой компонент) или выберите один из имеющихся шаблонов.
- Укажите имя компонента и нажмите Создать компонент.
- Новый компонент будет виден на вкладке Компоненты. Выберите его, создайте или внесите изменения в соответствии с вашими требованиями. Щелкните на нем правой кнопкой мыши, чтобы дублировать, скопировать или удалить.
- Вы можете добавить только что созданный компонент из дерева виджетов, UI Builder или плавающей палитры виджетов. На панели виджетов переключитесь на вкладку «Компоненты» и перетащите компонент в нужное место на странице.

Компонент AI Gen
Вы также можете сгенерировать компонент с помощью нашей функции «AI Gen Компонент». Просто опишите, что вам нужно, и мы сгенерируем компонент, который вы сможете предварительно просмотреть с помощью различных цветовых тем и соответствующего кода.
Примеры:
- Создайте нижний лист для информации о фильме.
- Создайте карточку для демонстрации информации о конкретной книге.
- Создать выпадающее меню с тремя вариантами пользовательских настроек.
- Построить нижний лист для информации о ресторане.
- Создать карточку для отображения информации о профиле пользователя.
- Создать навигационное меню с тремя кнопками для фитнес-приложения.
Видео:https://www.loom.com/share/de4755f7b984480eabd38eabe771849d?sid=5e86d0ed-bc99-47eb-b3d6-2707d190490a
Создание компонента из существующего виджета
Вы можете извлечь общие виджеты и создать компонент, который можно использовать многократно. Для этого просто щелкните правой кнопкой мыши на виджете и выберите Преобразовать в компонент.
Обратите внимание, что виджет на вашей странице теперь преобразован в компонент.

Передача данных
Вы можете передавать данные со страницы в ваш пользовательский компонент, выполнив следующие действия:
- Определите параметр
- Передать данные
- Использовать параметр
1. Определите параметр
- Откройте ваш компонент. Если вы находитесь в дереве виджетов, выберите первый виджет (т.е. ComponentName).
- С правой стороны найдите раздел Параметры компонента и нажмите кнопку +.
- Нажмите на + Добавить параметр и введите имя параметра.
- Установите соответствующий параметр Type; если этот параметр будет содержать список элементов, поставьте галочку List.
- Нажмите кнопку Подтвердить.


2. Передача данных
Чтобы передать данные компоненту, выполните следующие действия:
- Выберите пользовательский компонент на странице (где вы его добавили).
- Перейдите на панель свойств; в разделе «Свойства компонента» отобразится имя параметра (определенного в компоненте; см. предыдущий шаг).
- Введите значение параметра.

4. Если параметр имеет тип Действие, нажмите Открыть. Это откроет редактор потока действий в новом всплывающем окне, и здесь вы можете добавить любое действие, например действие Upload.

3. Использовать параметр
Доступ к значению параметра можно получить через меню Set from Variable > Component Parameters > [имя_параметра].

Создание переменной состояния компонента
Переменная состояния компонента определяется внутри компонента и может использоваться этим компонентом и любыми дочерними виджетами. Смотрите, как использовать переменную состояния компонента.
Запуск действий вне компонентов
Иногда вам может понадобиться вызвать действия на странице из виджета внутри компонента. Например, загрузить изображение нажатием кнопки (внутри компонента) и отобразить загруженное изображение обратно в виджете на странице.
Вы можете сделать это, добавив действие Execute Callback. Подробные инструкции вы найдете на следующей странице.
Запуск действий при загрузке компонента
Вы можете запустить любое действие, как только компонент будет загружен. Например, сделать вызов API для получения данных, которые будут отображаться на компоненте, или просто установить переменные состояния компонента сразу после его загрузки.
Чтобы вызвать действия при загрузке компонента, выберите имя компонента (первый виджет в дереве виджетов) > перейдите на панель свойств > выберите Действия > Добавить любое действие (в разделе Инициализация).
- Действие срабатывает только один раз при загрузке компонента, а не при его перестройке (НЕ при Update Type > Rebuild Current Component).
- Если компонент находится внутри списка, который отображает динамические данные (например, ListView > компонент карточки пользователя с API для получения данных при загрузке компонента), каждый компонент будет вызывать действия, добавленные в разделе On Initialized.
Вот пример компонента кредитной карты, который выполняет вызов API для получения данных кредитной карты при загрузке компонента.

Доступ к состоянию виджетов компонента
Компонент может иметь несколько виджетов внутри себя, и вы можете захотеть получить доступ к их состоянию за пределами компонента, т.е. страницы. Например, компонент с двумя TextFields (одно для имени пользователя, другое для пароля) может использоваться на странице входа в систему и на странице регистрации. Теперь на обеих страницах необходимо получить значение каждого TextField, как если бы они были добавлены на самой странице.
Вы можете получить доступ к состоянию виджетов компонента на вашей странице так же, как и к другим виджетам. Просто перейдите в меню Set Variable > Widget State > [имя_компонента] > [ваш_виджет].

Установить уникальный ключ
Когда компонент находится в динамически создаваемом списке, эта опция становится доступной. Представьте, что у вас есть динамический список, в котором элементы могут часто меняться — например, список дел, в котором задачи добавляются и удаляются. Подумайте об этом, как о присвоении каждой задаче уникального идентификационного номера. Это важно по нескольким причинам:
- Отслеживание изменений: Уникальный ключ» помогает приложению распознавать, какие задачи являются новыми, завершенными или удаленными, обеспечивая точность обновлений.
- Эффективность: Благодаря уникальным идентификаторам приложение обновляет только те задачи, которые изменились, а не весь список, что повышает производительность.
- Сохранение деталей: Когда вы изменяете задачу и отходите от нее, «уникальный ключ» обеспечивает запоминание изменений и их корректное отображение при возвращении.
Часто задаваемые вопросы
Чем компонент отличается от создания шаблона и виджета темы?
Компонент — это полнофункциональный виджет, который объединяет несколько виджетов и действий для выполнения задачи, в то время как шаблоны состоят из нескольких виджетов, которые создают уникальный макет пользовательского интерфейса с определенной целью, а виджет темы позволяет настроить визуальный вид одного виджета.
Итак, если шаблоны и темы полезны для создания единого визуального дизайна вашего приложения, то компоненты — это многоразовые и модульные строительные блоки, которые можно использовать для создания более сложных элементов пользовательского интерфейса.