
Узнайте, как новая UI-система на основе JSX упрощает разработку Snap с помощью настраиваемых компонентов и улучшенной интерактивности.

Мы представили отраслевой стандарт — более удобную в работе систему пользовательского интерфейса на основе JSX, которая позволяет разработчикам легче создавать интерфейсы Snap и настраивать их в значительно большей степени, чем прежде. Она приходит на смену предыдущей системе компонентов на основе функций, отличавшейся низкой гибкостью. С новой библиотекой UI разработчики могут создавать интерфейсы с пользовательскими props и даже разрабатывать собственные компоненты-шаблоны.
Кроме того, новая система включает UX-компоненты, обеспечивающие различные интерактивные сценарии использования: позиционирование, варианты кнопок, выпадающие списки и многое другое. Она предлагает более удобный опыт разработки при определении встроенных стилей, устраняя трудности, с которыми мы сталкивались при использовании Markdown.
Предыдущая библиотека UI по-прежнему поддерживается, однако считается устаревшей. В какой-то момент в будущем мы её удалим. Мы настоятельно рекомендуем разработчикам Snaps как можно скорее перенести код пользовательского интерфейса на новую систему на основе JSX.
Помимо упрощения создания пользовательских интерфейсов, мы выпустили два новых интерактивных JSX-компонента, не имеющих аналогов среди компонентов на основе функций: Dropdown и Field. Эти компоненты позволят вам добавить больше интерактивности и улучшить пользовательский опыт в ваших пользовательских интерфейсах.
Новый компонент Box заменяет компонент panel и добавляет параметры позиционирования и направления. Это позволяет создавать более насыщенные интерфейсы, лучше соответствующие вашим сценариям использования. Markdown заменён компонентами Bold, Italic и Link, которые упрощают работу с форматированным текстом.
Мы продолжим добавлять новые компоненты в JSX API.
JSX API позволяет создавать собственные компоненты — так же, как в React. Вы можете либо импортировать существующие компоненты из @metamask/snaps-sdk/jsx, либо создавать собственные пользовательские компоненты. Вот простой пример:
Ниже приведён обзор шагов, необходимых для перевода существующего проекта Snap на JSX:
Обновите зависимости пакета Snap.
Измените правила линтинга, чтобы обеспечить полноценное использование JSX-компонентов.
Переименуйте исходный файл Snap в index.tsx, если он содержит JSX.
Настройте конфигурацию Snap CLI так, чтобы она указывала на index.tsx.
Отредактируйте файл tsconfig.json Snap для включения поддержки JSX.
Подробное описание этих шагов приведено в нашей документации по обновлению проекта Snap для использования JSX.
Наш шаблонный монорепозиторий Snap уже настроен и готов к работе. Вы можете создать новый проект Snap из монорепозитория с помощью команды:
yarn create @metamask/snap my-snap-nameФайл snap/src/index.tsx содержит пример использования пользовательского интерфейса с JSX. Вы можете импортировать компоненты из @metamask/snaps-sdk/jsx и использовать их для построения интерфейса.
Обратитесь к нашей документации по пользовательскому интерфейсу с JSX, чтобы узнать обо всех компонентах и их props, а также изучите этот пример Snap с JSX.
Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.