Создание классического децентрализованного приложения Web3 NFT Minting с помощью React и Solidity: часть 2
6 апреля 2022 г.
Что вы будете создавать, см. [живую демонстрацию] (https://adulam-nft.web.app/) и [репозиторий GitHub] (https://github.com/Daltonic/adulamNFT) для получения дополнительной информации, не Не забудьте отметить проект звездочкой.
Введение
В ЧАСТИ ПЕРВОЙ этого руководства мы закодировали часть смарт-контракта. этого приложения с Solidity, теперь пришло время объединить его с ReactJs.
Если вы еще не ознакомились с ЧАСТЬЮ ПЕРВОЙ этого руководства, я рекомендуем сделать это, прежде чем переходить ко второй части.
Если вы получаете пользу от этого руководства и хотите полностью погрузиться в разработку блокчейна, тогда [Вы также можете связаться со мной для получения уроков…] (https://daltonic.github.io/#mh-pricing)
Давайте прыгнем и начнем кодировать…
Предпосылки
Для полного извлечь выгоду из этой части. Если нет, быстро проверьте ЧАСТЬ ПЕРВАЯ, блокчейн развитие не детская игра.
Сборка компонентов
Давайте начнем с создания компонентов шаг за шагом, убедитесь, что вы точно следуете шагам…
Компонент заголовка
Как всегда, мы начнем с компонента заголовка, это нормальный поток любого веб-сайта или приложения.
Это было прекрасно обработано с помощью CSS попутного ветра с использованием стилей градиентов. Он просто позволяет пользователю подключить адрес кошелька для минтинга. В проекте перейдите в папку компонентов и создайте новый файл с именем Header.jsx. После этого вставьте в него приведенные ниже коды.
Это все для заголовка, давайте поработаем над компонентом Hero.
Компонент героя
Этот компонент отвечает за инициирование процесса чеканки, как вы можете видеть с помощью кнопки чеканки. Кроме того, требуется запись общего количества отчеканенных NFT по сравнению с оставшимися.
Вот фрагмент кода, отвечающий за эту операцию…
```javascript
импортировать аватар из '../assets/owner.jpg'
импортировать github из «../assets/github_icon.png»
импортировать facebook из '../assets/facebook_icon.png'
импортировать твиттер из '../assets/twitter_icon.png'
импортировать linkedIn из '../assets/linkedIn_icon.png'
импортировать носитель из '../assets/medium_icon.png'
импорт {
установить оповещение,
использование GlobalState,
setGlobalState,
setLoadingMsg,
} из '../магазин'
импортировать {BASE_URI, payForArt} из '../Adulam'
выравнивание по центру элементов по центру w-10 h-10 округлено-полный
bg-белый курсор-указатель p-3 мл-4 текст-черный
hover:bg-[#bd255f] hover:текст-белый переход-все
продолжительность-75 задержка-100"
{nfts.length}/{maxSupply}
экспортировать героя по умолчанию
Следующим в нашем списке является компонент художественных работ…
Компонент произведений искусства
На этот компонент возложена ответственность за отрисовку произведений искусства одно за другим. Попутный CSS помог нам разработать потрясающий интерфейс.
Давайте посмотрим на коды, отвечающие за поведение этих компонентов…
экспортировать произведения искусства по умолчанию
Давайте перейдем к добавлению компонента нижнего колонтитула…
Компонент нижнего колонтитула
Если вы цените хорошую работу, вам понравится этот дизайн. Tailwind CSS позволил мне создать такие красивые компоненты, как этот. Эй, если вам интересно, я могу пригласить вас на частное занятие по разработке блокчейна, посмотрите мои предложения здесь.
Возвращаясь к этой сборке, этот текущий компонент слегка отличается фирменным отображением бренда и логотипа сайта, ничего особенного в этом компоненте, однако мне нужно было включить его в это руководство.
Фантастика, мы почти закончили с этими компонентами, давайте добавим последние два…
Компонент оповещения
Этот компонент, как бы интуитивно он ни звучал, отвечает за уведомление нас, когда наш процесс чеканки завершен. Опять же, он был создан вручную с использованием Tailwind CSS и некоторых значков реагирования.
Давайте посмотрим на коды, демонстрирующие его поведение…
```javascript
импортировать {useGlobalState} из '../store'
импортировать { FaRegTimesCircle } из 'react-icons/fa'
импортировать { BsCheck2Circle } из 'react-icons/bs'
импортировать {BrowserRouter} из 'react-router-dom'
импортировать './index.css'
импортировать приложение из './App'
ReactDOM.render(
<Браузермаршрутизатор>
<Приложение />
,
document.getElementById('корень')
Фантастика, есть еще два важных файла, о которых вы должны знать, давайте посмотрим на них…
Блокчейн-интерфейс Adulam
Чтобы вы могли взаимодействовать с нашим развернутым смарт-контрактом, вам необходимо получить к нему доступ через функции. Приведенные ниже коды позволяют нам взаимодействовать с нашим смарт-контрактом, который сейчас работает в сети блокчейна. Создайте файл с именем Adulam.jsx в папке src этого проекта и вставьте в него следующие коды.
Это такая удобная функциональная структура, которую вы должны использовать в своем последующем блокчейн-проекте. Он объединяет все функции, связанные с блокчейном, и помогает нам сохранять здравомыслие.
Далее давайте обсудим, как наша маленькая, но не такая уж маленькая библиотека управления состоянием координирует всю эту деятельность за кулисами.
Библиотека управления операторами
Мы используем пакет react-global-hook для управления состоянием. Настройка избыточности для такого небольшого проекта может быть громоздкой, и зачем вам это, если у вас есть такая простая реализация, как приведенная ниже?
Создайте папку внутри каталога src с именем store, а также создайте в ней файл с именем index.jsx, теперь вставьте коды ниже в файл и сохраните.
```javascript
импорт { createGlobalState } из 'реагировать-хуки-глобальное-состояние'
Позвольте мне обратить ваше внимание на эту папку, которая уже не должна быть пустой…
В ЧАСТИ ПЕРВОЙ этой статьи мы указали в truffle -config.js для создания этих файлов в этой папке всякий раз, когда мы компилируем смарт-контракт, поэтому у нас есть эта папка, доступная для нас.
Файлы активов
Я должен сказать, что мы почти закончили, за исключением того, что мы не включили папку с ресурсами и файлы. Сделаем это быстро…
Создайте папку в каталоге src с именем assets, затем загрузите и переместите в нее файл ниже.
Теперь, когда мы закончили со всеми сборками, давайте запустим сервер, выполнив приведенную ниже команду на терминале, чтобы сделать это!
``` ударить
yarn start #запускает сервер на localhost:3000
Поздравляем, вы официально завершили сборку…
Заключение
Вы видели еще один классический пример создания приложения web3. Я твердо верю, что если вы программируете вместе со мной, вы являетесь одной из армий блокчейнов, которых ищет децентрализованный интернет.
В настоящее время я преподаю разработку блокчейна онлайн, если вы хотите углубиться в этот навык, [Вы можете связаться со мной на моем веб-сайте.] (https://daltonic.github.io/)
До следующего раза, всего наилучшего!
Об авторе
Госпел Дарлингтон начал свой путь в качестве инженера-программиста в 2016 году. За эти годы он приобрел полноценные навыки работы со стеками JavaScript, такими как React, ReactNative, VueJs, а теперь и с блокчейном.
В настоящее время он работает фрилансером, создает приложения для клиентов и пишет технические руководства, обучая других тому, что делает он.
Евангелие в Дарлингтоне открыто и доступно для вас. Вы можете связаться с ним на LinkedIn, Facebook, Github или на его веб-сайте.