background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Теги видео
|

Теги видео

javascript
javascript mastery
js mastery
master javascript
react admin
admin dashboard
react admin dashboard
react dashboard design
react dashboard template
react dashboard ui
react admin panel
dashboard react js
build a dashboard in react js
admin panel in react js
chart react js
tables in react js
react charts dashboard
react kanban board
kanban board react js
react js
syncfusion
syncfusion dashboard
syncfusion react js
react js website
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
привет и добро пожаловать на проектный курс
00:00:03
где вы создадите и развернете лучшие
00:00:07
реагируйте на приложение панели администратора, которое вы
00:00:10
когда-либо видел
00:00:12
я так рад этому
00:00:14
это приложение панели управления полностью
00:00:16
мобильный адаптивный и настраиваемый
00:00:20
можно выбрать между шестью красивыми темами
00:00:22
цвета, а также переключаться между
00:00:25
темный и светлый режим нашей админ-панели
00:00:29
включает в себя одну панель управления
00:00:31
три страницы
00:00:33
четыре приложения и семь
00:00:35
полнофункциональные диаграммы
00:00:38
возможности различных видов
00:00:40
приложения, которые вы можете создавать с помощью
00:00:42
навыки, которые вы получите на этом курсе,
00:00:44
бесконечно, без лишних слов, давай
00:00:47
взгляните на то, что вы узнаете, как
00:00:49
постройте с нуля в этом видео и
00:00:53
просто представьте себе все разные виды
00:00:55
приложения, которые вы сможете использовать
00:00:57
ваша собственная панель управления включает в себя
00:01:01
прекрасный вид на все самое
00:01:03
важные показатели, такие как доход
00:01:06
обзор продаж последних транзакций и
00:01:09
подробнее первая страница - это таблица заказов
00:01:13
и включает в себя систему нумерации страниц
00:01:16
страница сотрудников – это вторая таблица и
00:01:19
он включает в себя полностью функциональный
00:01:22
функции поиска и фильтрации и
00:01:25
наконец, таблица страниц клиентов
00:01:28
полностью редактируемый, что означает, что вы можете
00:01:30
выберите несколько строк и удалите их как
00:01:34
а также редактировать каждое поле отдельно
00:01:37
это не специализированная панель управления
00:01:40
это означает, что вы можете использовать определенные
00:01:42
его части для абсолютно любого приложения, которое вы
00:01:45
могу подумать, поэтому я включил
00:01:48
четыре приложения, которые имеют решающее значение почти
00:01:51
каждая приборная панель
00:01:52
первое приложение является полностью функциональным
00:01:55
календарь и когда я говорю полностью функциональный
00:01:58
я имею в виду, что вы можете перетаскивать события
00:02:01
и отредактируйте начало местоположения заголовка и
00:02:05
дата окончания и все остальные мелочи
00:02:08
подробно, у меня такое ощущение, будто я на телевизионных распродажах
00:02:11
покажи, сказав это, но это еще не все
00:02:14
вы даже можете изменить вид календаря
00:02:17
со дня
00:02:18
неделя
00:02:19
месяц и даже список повестки дня
00:02:22
разве это не безумие, второе приложение - это
00:02:25
канбан-доска, ну, вы знаете, просто как
00:02:28
все приложение Trello или Jira прямо внутри
00:02:31
нашей информационной панели вы узнаете, как
00:02:34
сделать это тоже
00:02:36
тогда у нас есть полноценное то, что вы
00:02:39
посмотри, что ты получишь, редактор, который ты можешь сделать
00:02:42
текст жирным шрифтом, вы можете добавлять изображения и
00:02:44
существенно изменить текст любым способом
00:02:47
вы можете подумать, и, наконец, у нас есть
00:02:50
Приложение для выбора цвета очень полезно, если вы
00:02:53
хотите, чтобы ваши пользователи могли выбирать
00:02:54
определенные цвета, например, по теме
00:02:57
их приложения и теперь самое интересное
00:03:00
начинается, вы узнаете, как создать семь
00:03:03
различные виды диаграмм
00:03:05
давайте проверим их один за другим
00:03:08
первый график — это линейный график, который вы
00:03:10
можно навести курсор на строки, чтобы получить больше
00:03:12
информация об этих замечательных подсказках
00:03:15
вторая диаграмма — это диаграмма с областями, которую вы
00:03:18
можно нажать на определенное значение, чтобы скрыть или
00:03:21
показать его с графика на следующих диаграммах
00:03:24
классическая гистограмма и круговая диаграмма
00:03:27
и наконец у нас есть еще немного кастомов
00:03:30
графики финансовых свечей отлично подходят для
00:03:33
отслеживание акций
00:03:35
и у нас есть таблица сопоставления цветов справа
00:03:38
здесь и, наконец, пирамидальная диаграмма
00:03:41
это диаграммы, которые вам на самом деле не нужны
00:03:43
видишь это часто и если хочешь
00:03:45
развивая их, вы бы потратили недели
00:03:47
о попытках добиться идеального внешнего вида
00:03:50
снова возможности разных
00:03:52
виды приложений, которые вы можете сделать
00:03:54
используя навыки, которые вы получите в этом
00:03:56
конечно бесконечны
00:03:58
пользователи также могут свернуть боковую панель, чтобы
00:04:01
просматривать контент целиком и
00:04:04
также будут рассмотрены некоторые дополнительные виджеты
00:04:06
как корзина для покупок, чат
00:04:08
уведомления и профиль пользователя, ох и
00:04:12
я чуть не забыл упомянуть нашего администратора
00:04:15
панель управления полностью адаптирована для мобильных устройств
00:04:19
так как вы можете видеть боковую панель автоматически
00:04:22
схлопывается, и если мы откроем его, мы сможем двигаться
00:04:25
между всеми нашими страницами, естественно
00:04:28
такое ощущение, что это родной мобильный телефон
00:04:31
приложение
00:04:32
параллельно с созданием этого феноменального
00:04:34
приложение в этом видео вы узнаете
00:04:37
передовые методы реагирования, такие как
00:04:40
перехватчики структуры папок и файлов, а также
00:04:44
ссылок у нас будет много разных
00:04:46
компоненты на разных страницах, поэтому
00:04:48
я научу тебя масштабировать свой
00:04:51
меньшие приложения реагируют на более высокие
00:04:54
размер корпоративного уровня, который вы собираетесь
00:04:56
также изучите расширенное управление состоянием
00:04:59
все приложение с использованием реакции
00:05:03
контекстное API
00:05:04
и самое главное вы научитесь
00:05:07
использовать sync fusion syncfusion - это
00:05:11
лучший в мире набор компонентов пользовательского интерфейса для
00:05:15
создание мощных веб-версий для настольных компьютеров и мобильных устройств
00:05:18
приложений включает в себя более 1700
00:05:22
компоненты для всех основных платформ и
00:05:25
конечно, мы сосредоточимся на response.js
00:05:29
разработку приложений с использованием своих
00:05:31
компоненты сэкономят вам часы времени
00:05:34
и вы получите профессионала
00:05:36
и красивый готовый к производству
00:05:38
приложение, все компоненты
00:05:41
по умолчанию реагирует, поэтому у вас нет
00:05:43
делать дополнительную работу, чтобы сделать их мобильными
00:05:47
дружелюбный и, что самое приятное, это
00:05:49
Лицензия сообщества syncfusion обеспечивает
00:05:52
бесплатный доступ ко всем синхронизациям Fusion
00:05:54
компоненты для индивидуальных разработчиков и
00:05:57
малый бизнес
00:05:59
это означает, что вы сможете получить
00:06:02
все, что я упомянул в этом видео
00:06:05
совершенно бесплатно все передовые
00:06:08
компоненты включены
00:06:10
функции, которые займут у вас недели
00:06:12
или даже месяцы можно выразить в часах
00:06:16
используя свои компоненты
00:06:17
всего за 30–40 строк кода
00:06:20
вы можете построить очень сложный календарь
00:06:23
редактор и диаграмма
00:06:25
почти все компоненты нашего приложения имеют
00:06:28
построен с использованием таблиц синхронизации
00:06:31
редакторы графиков, календарей и, по сути,
00:06:35
все, что вы можете увидеть здесь
00:06:37
все очень просто в использовании
00:06:39
настраиваемый и отзывчивый
00:06:42
Box Syncfusion является спонсором
00:06:45
это видео, но мне искренне нравится
00:06:48
их программное обеспечение, и я бы порекомендовал его
00:06:50
каждому из вас я собираюсь
00:06:53
обязательно использую его на своем предприятии
00:06:56
проекты уровня
00:06:57
и если ты похож на меня, когда я впервые услышал
00:07:00
насчет синфузии, ты собираешься быть
00:07:01
спрашиваю, эй, но разве нет материала пользовательского интерфейса?
00:07:05
чакра или и дизайн
00:07:07
это также некоторые другие библиотеки пользовательского интерфейса
00:07:10
верно
00:07:11
эти библиотеки пользовательского интерфейса хороши, но они
00:07:13
просто не используйте сложные компоненты, как
00:07:16
syncfusion делает syncfusion — это просто
00:07:19
универсальное решение для строительного комплекса
00:07:22
приложения быстрее и, как я уже сказал, полностью
00:07:25
бесплатно для индивидуальных разработчиков и небольших
00:07:28
бизнес, так что наслаждайтесь еще раз, я так
00:07:32
рад, что могу поделиться этим с тобой и подарить
00:07:34
вам подробное руководство по созданию
00:07:37
лучшая панель администратора в Интернете
00:07:41
если это видео наберет 20 000 лайков, я сделаю это
00:07:44
создавайте больше таких видео
00:07:47
так что подпишитесь, поставьте лайк и дайте мне знать, что
00:07:50
вы хотели бы видеть следующее в комментариях
00:07:53
в конце мы также развернем приложение, чтобы
00:07:55
что вы можете поделиться им со своими друзьями
00:07:57
помести это в свое портфолио и найди работу
00:08:00
как только вы его развернете, поделитесь им в Твиттере
00:08:03
Instagram или Linkedin и отметьте нас, мы сделаем
00:08:07
с радостью поделитесь вашими публикациями в наших социальных сетях
00:08:09
медиаканалы для всего мира
00:08:12
видеть
00:08:13
с учетом сказанного, давайте сразу перейдем к делу
00:08:15
код
00:08:17
[Музыка]
00:08:25
как мы всегда делаем при освоении JavaScript
00:08:28
мы собираемся начать с нуля
00:08:30
начало
00:08:31
это означает, что мы сейчас находимся на рабочем столе
00:08:34
мы можем щелкнуть правой кнопкой мыши и создать новый
00:08:36
папку, мы можем назвать ее примерно так
00:08:39
панель приборов
00:08:41
как только у вас появится папка, вы сможете ее открыть
00:08:43
выберите свой редактор кода в этом
00:08:46
случае мы будем использовать код Visual Studio
00:08:49
единственное, что вам нужно сделать, это просто
00:08:51
перетащите папку в свой
00:08:53
окно кода Visual Studio, как только вы это сделаете
00:08:55
что вы можете расширить свою визуальную студию
00:08:57
код, и вы можете перейти к просмотру и терминалу
00:09:02
Код Visual Studio имеет отличный
00:09:04
интегрированный терминал, который мы собираемся
00:09:05
используйте для настройки и инициализации нашей реакции
00:09:09
приложение
00:09:10
Итак, давайте начнем с запуска mpx create
00:09:14
тире реагирует на приложение тире, а затем косую черту с точкой
00:09:17
чтобы создать его в текущем репозитории
00:09:20
мы можем нажать y, чтобы установить следующее
00:09:22
пакеты
00:09:24
и этот процесс обычно занимает всего
00:09:26
около минуты, так что я сделаю паузу
00:09:29
записываю и я скоро вернусь
00:09:31
и вот мы идем
00:09:33
теперь, если вы откроете файловый менеджер
00:09:35
вы увидите, что у нас есть несколько
00:09:38
файлы и папки здесь
00:09:39
самая важная папка сейчас это
00:09:41
будет исходная папка, которая
00:09:43
содержит все наше реагирующее приложение
00:09:47
что мне всегда нравится делать с созданием
00:09:49
реагирующие приложения полностью удаляют
00:09:51
исходная папка, так как она содержит несколько файлов
00:09:53
нам не обязательно это нужно, так что в самый раз
00:09:56
щелкните и удалите его, а затем щелкните правой кнопкой мыши
00:09:59
прямо здесь и создайте новый пустой источник
00:10:02
папку, с которой мы можем сразу начать
00:10:05
создание некоторых необходимых файлов для каждого
00:10:07
одно реагирующее приложение
00:10:09
и конечно самое главное
00:10:11
тот
00:10:12
файл index.js
00:10:14
это файл, в который мы импортируем реакцию
00:10:18
от реакции
00:10:20
и это также единственный файл, где мы
00:10:23
импортировать реакцию dom из реакции-дома, так что в
00:10:28
здесь мы подключаем наше реагирующее приложение к
00:10:30
настоящий дом, чем мы также можем заняться здесь
00:10:33
это приложение для импорта
00:10:36
от
00:10:37
приложение
00:10:38
и этого еще не существует, но мы
00:10:40
собираюсь создать его очень скоро, так что просто
00:10:42
приложение слэша и, наконец, мы можем сказать
00:10:46
реагировать дом
00:10:47
точечный рендеринг
00:10:49
и тогда в качестве первого параметра мы можем
00:10:51
предоставьте наше приложение, и мы сможем сказать запятую
00:10:54
точка документа получить элемент по идентификатору, а затем
00:10:58
root, это обязательно зацепит
00:11:00
наше реагирующее приложение на корневой элемент div
00:11:03
сейчас, конечно, мы используем это приложение, но оно
00:11:06
еще не существует, так что давайте продолжим и
00:11:08
создайте его, мы можем щелкнуть правой кнопкой мыши источник
00:11:10
папку и нажмите новый файл и давайте
00:11:13
создайте файл с именем app.js
00:11:17
внутри там мы можем использовать немного крутого
00:11:19
ярлык под названием Rafce, который собирается
00:11:22
создать компонент функции стрелки реагирования
00:11:25
с экспортом, если у вас это не сработало
00:11:28
это должно означать, что у вас нет
00:11:30
фрагменты es7 plus, поэтому просто введите es7 plus
00:11:35
реагировать на сокращение, реагировать на нативные фрагменты и
00:11:38
установите это расширение
00:11:40
тогда вы сможете просто ввести
00:11:42
rafce и получите этот шаблонный код
00:11:46
отлично, теперь у нас есть index.js и
00:11:49
наши приложения, так что сейчас самое время
00:11:52
установить все необходимое
00:11:54
зависимости, которые мы собираемся использовать для
00:11:56
этот проект
00:11:57
и мы, конечно, можем сделать это внутри
00:12:00
наш package.json
00:12:02
сделать вашу жизнь проще и сделать
00:12:04
уверен, что этот проект работает именно так
00:12:06
так и должно быть на долгие годы, я
00:12:09
собираюсь дать вам мой package.json, так что
00:12:12
внизу в описании будет
00:12:14
быть gistub gist, содержащим все
00:12:17
код, на который я буду ссылаться
00:12:19
это видео, так что просто зайдите на этот github
00:12:21
суть найдите package.json и вставьте его
00:12:24
прямо здесь, как вы можете видеть это
00:12:26
package.json будет иметь
00:12:28
версия названия проекта, и она будет
00:12:31
иметь точные версии конкретных
00:12:33
зависимости
00:12:34
это делается для того, чтобы гарантировать, что мы работаем над
00:12:38
одинаковые версии зависимостей, поэтому даже если
00:12:40
ты смотришь это видео два года
00:12:42
после публикации оно все еще
00:12:44
теперь отлично подойдет вам, так как
00:12:46
вы можете видеть, что мы просто используем простой
00:12:49
реагировать здесь у нас есть реакция реагировать дом реагировать
00:12:53
значки и панель реагирования маршрутизатора, а также
00:12:56
ничего серьезного
00:12:58
но, как вы можете видеть, большая часть
00:12:59
зависимости на самом деле исходят из
00:13:02
добавить синхронизацию
00:13:04
итак, здесь мы получим их потрясающие
00:13:07
Входные данные раскрывающегося списка сеток календарной диаграммы
00:13:11
канбан-доски, всплывающие окна, редакторы форматированного текста
00:13:14
и компоненты расписания
00:13:16
это сделает наше приложение
00:13:19
лучшая панель управления в Интернете, так что
00:13:22
единственное, что вам нужно сделать, чтобы установить
00:13:24
эти зависимости перейти к просмотру
00:13:26
а затем терминал
00:13:28
и, наконец, вам нужно ввести npm install
00:13:32
Dash Dash Legacy Dash Peer Dash Глубина
00:13:36
это обязательно установится
00:13:38
только правильные зависимости и, наконец,
00:13:41
мы можем нажать Enter
00:13:44
этот процесс займет около
00:13:46
минута, так что, пока это работает, пойдем
00:13:48
вперед и настроим наши стили
00:13:50
что вы можете сделать, так это создать новый
00:13:54
файл index.css в исходной папке
00:13:57
индексная точка CSS
00:13:59
внутри здесь вы можете скопировать и вставить
00:14:02
файл, который вы также можете найти в папке
00:14:04
описание
00:14:05
это будет простой файл
00:14:07
содержащий импорт для красивого вида
00:14:09
шрифт
00:14:10
мы сбрасываем поля и отступы
00:14:12
на корпусе и импортируем попутный ветер
00:14:15
чтобы мы могли использовать этот великий попутный ветер
00:14:17
параметры стиля в следующем файле, который мы будем
00:14:20
мне понадобится, оно будет называться точкой приложения
00:14:23
CSS
00:14:24
внутри нашего приложения у нас будет CSS
00:14:26
еще несколько стилей, которые вы снова можете найти
00:14:29
эти стили внизу в описании
00:14:31
внутри той же самой сути GitHub
00:14:34
здесь мы просто сбрасываем некоторые из
00:14:36
необходимые стили и убедиться, что
00:14:38
все выглядит хорошо
00:14:40
и пока мы создавали эти файлы
00:14:42
похоже, наше приложение установлено
00:14:45
это здорово, что мы сможем его запустить
00:14:47
достаточно скоро, чтобы проверить, что все в порядке
00:14:50
хорошо
00:14:51
но прежде чем мы это сделаем, нам просто нужно
00:14:53
настроить попутный ветер попутный ветер - это потрясающе
00:14:56
css framework, который позволяет вам
00:14:58
быстро создавать современные веб-сайты без
00:15:01
когда-либо покидая ваш html или в нашем случае
00:15:04
jsx
00:15:05
вместо отдельных файлов CSS
00:15:08
вы сможете использовать служебные классы
00:15:10
например, гибкое дополнение в верхнем 4 текстовом центре
00:15:13
и т. д., чтобы упростить стилизацию
00:15:16
компоненты на вашем веб-сайте для его установки
00:15:18
мы можем пройти этот процесс правильно
00:15:19
здесь, но мы уже сделали большую часть
00:15:22
эти вещи, установив все
00:15:23
необходимые зависимости, которые были
00:15:25
включен в мой package.json, так что просто
00:15:28
завершить дела, нам нужно добавить два новых
00:15:32
файлы
00:15:33
за пределами исходной папки, что означает в
00:15:35
в корень нашего каталога вы можете справа
00:15:37
нажмите прямо здесь и создайте новый файл
00:15:40
это будет называться попутным ветром
00:15:43
точечная конфигурация
00:15:44
dot js внутри этого github прямо в
00:15:47
описание, вы сможете найти это
00:15:49
файл прямо здесь, это просто быстрая настройка
00:15:52
также указание размеров шрифтов некоторых шрифтов
00:15:56
в качестве цвета фона, чтобы сделать наши
00:15:58
рабочий процесс стал намного более плавным и последним
00:16:01
нужный нам файл также будет находиться в
00:16:03
корень нашего каталога, и он будет
00:16:06
называться конфигурацией krakow dot
00:16:09
точка JS
00:16:11
внутри этой сути GitHub ты будешь
00:16:13
смог найти
00:16:14
файл craco.config.js, так просто
00:16:17
скопируйте и вставьте это прямо сюда
00:16:20
я знаю, что мы сделали много копий и
00:16:22
вставка для начала но это потому что
00:16:24
это только начало, поэтому нам нужно убедиться
00:16:27
правильно все настроить, чтобы
00:16:29
наш рабочий процесс разработки настолько быстр и
00:16:32
как можно более гладко
00:16:35
тратить это время на настройку
00:16:36
необходимо, потому что с этого момента мы просто
00:16:39
сосредоточьтесь на создании фактического кода в
00:16:42
таким образом вам не придется беспокоиться о
00:16:44
какие-то ошибки или несоответствия у вас будут
00:16:47
способен просто программировать и учиться этому
00:16:50
много
00:16:51
Итак, с учетом сказанного, я думаю, теперь нам следует
00:16:55
будьте готовы запустить наше приложение
00:16:57
и посмотреть, что происходит, вы можете нажать
00:17:00
Ctrl тильда или перейти к просмотру, а затем
00:17:02
Терминал
00:17:03
и, наконец, вы можете запустить npm start
00:17:07
это только что запустило наше приложение
00:17:09
localhost 3000, и вы сможете
00:17:12
посмотри это в своем браузере
00:17:14
если сильно увеличить масштаб, то можно увидеть, что мы
00:17:16
иметь небольшое приложение прямо здесь, что означает
00:17:19
что наше приложение работает
00:17:21
чтобы убедиться, что попутный ветер правильный
00:17:23
подключены к нашему приложению, мы из
00:17:25
конечно, придется вернуться к index.js и
00:17:29
мы должны импортировать это
00:17:31
CSS-файл
00:17:33
поэтому прямо над нашим приложением импорта мы можем сказать
00:17:36
импортировать, а затем в строке с косой чертой
00:17:39
индексная точка CSS
00:17:41
это будет импортировать весь попутный ветер
00:17:43
утилиты, мы также можем перейти к app.js и
00:17:47
внутри мы можем импортировать строку
00:17:50
точечный слэш
00:17:52
приложение.css
00:17:54
вот и все
00:17:56
и, наконец, вместо того, чтобы просто печатать приложение
00:17:58
в div прямо здесь
00:18:00
давайте изменим это на h1
00:18:03
и давайте дадим ему имя класса, равное
00:18:05
что-то вроде подчеркивания и текста
00:18:09
тире 3xl
00:18:11
это действительно должно увеличить шрифт
00:18:13
размер, и это должно сделать наш текст
00:18:16
подчеркнутый
00:18:17
так что давайте сохраним это, и если мы вернемся к
00:18:19
наше приложение теперь можно даже масштабировать, потому что
00:18:22
вы можете видеть, что это действительно работает
00:18:24
попутный ветер связан, потому что класс
00:18:26
подчеркнутое имя действительно применило его
00:18:29
Ну и замечательно
00:18:31
теперь мы готовы приступить к настройке нашего
00:18:34
структура файлов и папок, как у меня
00:18:36
упоминалось в начале, это происходит
00:18:39
это будет довольно большое приложение с большим количеством
00:18:42
разных компонентов много данных
00:18:44
передвигаться и с большим количеством
00:18:46
отдельные страницы, поэтому крайне важно, чтобы
00:18:50
мы создаем правильную структуру проекта
00:18:52
с самого начала и когда я говорю проект
00:18:54
структуру, я в первую очередь имею в виду файл и
00:18:56
структура папок и способы, которыми
00:18:59
мы собираемся соединить эти файлы
00:19:01
Итак, что мы можем сделать для начала, это создать
00:19:04
несколько разных папок, все эти файлы
00:19:06
и папки будут внутри
00:19:08
исходную папку, поэтому щелкните ее правой кнопкой мыши и
00:19:11
нажмите создать новую папку
00:19:13
мы можем начать с одного из самых
00:19:15
важные папки, и это
00:19:17
папку компонентов, затем мы собираемся
00:19:19
есть второй, который будет
00:19:21
называемые контексты, здесь мы собираемся
00:19:24
используйте наш API контекста реагирования и, наконец,
00:19:28
у нас будет один для страниц
00:19:31
страницы похожи на компоненты, но
00:19:33
где один компонент не может быть использован
00:19:35
внутри других компонентов в случае страниц
00:19:38
одна страница может включать и в большинстве случаев
00:19:42
будет включать больше компонентов
00:19:44
будет четвертая папка
00:19:47
вот здесь и эта папка называется
00:19:50
данные этой папки данных
00:19:52
будет включать в себя множество изображений, а также демо-версию
00:19:55
данные, которые мы можем использовать во всей нашей
00:19:57
приложение
00:19:58
так что внизу в описании самое
00:20:01
вероятно, в той же самой сути github вы
00:20:03
сможете найти ссылку для скачивания
00:20:06
заархивированную папку с данными, вы можете разархивировать ее и
00:20:09
просто вставьте это прямо сюда
00:20:11
это будет выглядеть примерно так
00:20:14
как вы можете видеть, у нас много
00:20:16
разные изображения разных людей
00:20:18
которые будут использовать нашу панель управления
00:20:20
а также различные изображения продуктов из
00:20:23
очки для маленьких автомобилей и часов
00:20:26
и, наконец, у нас есть огромные фиктивные данные
00:20:29
файл, который не содержит абсолютно никакой логики
00:20:33
так что не пугайтесь этого здесь, мы просто
00:20:36
иметь коллекцию разных массивов
00:20:39
и объекты, которые представляют наши данные
00:20:42
таким образом вам не придется беспокоиться о
00:20:45
написание всего этого скучного кода означает
00:20:47
просто объекты и массивы разных
00:20:49
строки, такие как разные позиции
00:20:52
элементы в определенных диаграммах или некоторых
00:20:54
названия, описания, изображения и т. д.
00:20:57
все хорошо составлено для вас
00:21:00
прямо здесь, и мы сможем просто
00:21:02
импортируйте его на разные страницы внутри
00:21:05
наша панель управления
00:21:06
это сэкономит нам много времени
00:21:09
и он собирается сделать это видео таким
00:21:11
гораздо более познавательный
00:21:13
я не хочу тратить твои 10 часов
00:21:15
время
00:21:16
чтобы ты напечатал это, я хочу это
00:21:18
видео должно быть как можно короче, но как можно
00:21:21
вы знаете, с видеороликами по освоению JavaScript
00:21:23
это может занять несколько часов
00:21:24
но в течение этого времени я хочу
00:21:27
ты выучишь как можно больше, я хочу, чтобы ты
00:21:30
усваивать знания, которые действительно
00:21:32
имеет значение, так что с учетом сказанного у нас теперь есть
00:21:35
наш app.js, наш index.js, и у нас есть
00:21:39
эти четыре разные папки, которые мы
00:21:41
скоро заполню файлами, а теперь давайте
00:21:45
начнем с нашего основного файла, который является
00:21:48
приложение.js
00:21:50
внутри здесь мы, конечно, можем сначала
00:21:52
начнем с импорта, поэтому мы собираемся
00:21:54
импорт реагирует, а также
00:21:58
внутри фигурных скобок используйте крючок эффекта
00:22:01
от реакции
00:22:03
мы также собираемся импортировать кое-что
00:22:05
из React Router dom, и это
00:22:08
браузер-маршрутизатор
00:22:10
а также маршруты
00:22:13
и, наконец, один маршрут, так что это
00:22:16
исходит из React Dash Router Dash dom
00:22:21
нам также понадобится значок, чтобы мы могли
00:22:23
скажем, импорт фи. настройки и все
00:22:27
исходя из значков реакции тире вперед
00:22:30
слэш фи
00:22:32
наконец-то мы импортируем всплывающую подсказку
00:22:35
компонент, поэтому компонент всплывающей подсказки
00:22:39
так
00:22:40
и это будет исходить от
00:22:42
добавить синхронизацию
00:22:44
косая черта ej2
00:22:47
тире реагирует тире всплывающие окна поехали
00:22:52
думаю, это будет все, что мы
00:22:53
нужно сейчас, конечно, позже мы
00:22:56
собираемся импортировать все наши компоненты и
00:22:58
страницы в один файл, но пока
00:23:01
нам пора идти
00:23:03
что мы можем сделать, так это сосредоточиться на фактическом
00:23:05
структуру, поэтому вместо этого h1 мы можем
00:23:09
создайте div прямо здесь и внутри него
00:23:12
div мы можем создать маршрутизатор браузера
00:23:15
компонент внутри этого браузера-маршрутизатора
00:23:18
у нас может быть div
00:23:20
и у этого div будет класс
00:23:22
имя
00:23:23
гибкий
00:23:25
родственник
00:23:26
и в темном режиме мы хотим установить фон
00:23:30
главная черта
00:23:31
тире темный тире фон
00:23:34
это сила попутного ветра ты просто
00:23:37
сделал div flex
00:23:39
мы присвоили ему относительную позицию и
00:23:41
установить темный цвет фона
00:23:44
внутри у нас будет один
00:23:46
больше div, и этот div будет иметь
00:23:50
имя класса
00:23:51
равен фиксированному
00:23:53
правый тире 4
00:23:55
нижнее тире 4, и мы также можем дать ему
00:23:58
встроенный стиль, который будет устанавливать z
00:24:01
индекс примерно от тысячи до
00:24:04
сделать так, чтобы он отображался поверх всех остальных элементов
00:24:07
внутри там мы можем отрендерить наш первый
00:24:10
синхронизировать компонент Fusion когда-либо
00:24:12
и это будет всплывающая подсказка
00:24:15
всплывающая подсказка компонента будет иметь свое
00:24:18
собственный закрывающий тег
00:24:20
и в качестве реквизита он примет
00:24:22
содержимое равно настройкам
00:24:25
и он примет эту позицию
00:24:27
равен вершине
00:24:29
вот и все
00:24:31
и теперь внутри мы можем просто
00:24:33
создать кнопку
00:24:35
так
00:24:36
вот и внутри этой кнопки мы
00:24:40
можно поместить значок настроек fi как
00:24:43
самозакрывающийся значок
00:24:45
теперь, чтобы иметь возможность увидеть изменения, которые
00:24:47
мы пишем в браузере, это может быть
00:24:49
хорошая идея поставить наш браузер и нашу
00:24:52
редактор бок о бок, и вот, поехали.
00:24:55
просто оттащил мой редактор в сторону, и мы
00:24:58
можете увидеть этот замечательный значок настроек на
00:25:00
внизу он слишком мал на 100
00:25:03
но если немного увеличить, то можно увидеть
00:25:05
это действительно хорошо
00:25:06
так что теперь мы можем навести на него курсор и
00:25:09
вы можете увидеть эту замечательную подсказку, это
00:25:12
первый компонент синхронизации, который
00:25:15
мы использовали, но, конечно, собираемся
00:25:17
скоро используй еще много
00:25:19
теперь давайте немного стилизуем эту кнопку
00:25:22
поэтому давайте присвоим ему тип, равный
00:25:24
застегивать
00:25:26
и давайте также дадим ему имя класса
00:25:28
равно текстовому тире 3 xl, это будет
00:25:32
сделаем иконку намного больше, мы можем дать
00:25:34
это п
00:25:35
3 свойство или дополнительное тире 3.
00:25:38
при наведении мы можем сделать рывок
00:25:42
тень тире xl, так что теперь, если мы наведем курсор
00:25:45
ты видишь эту красивую тень
00:25:48
мы также можем сказать, что hover Dash BG Dash Light
00:25:52
штрих-серый, так что это изменит
00:25:55
цвет фона при наведении
00:25:57
что-то вроде этого, конечно, произойдет
00:25:59
очень скоро буду выглядеть намного лучше
00:26:02
но теперь давайте просто добавим текстовое тире
00:26:05
белый цвет, который сделает это
00:26:07
совершенно белый и невидимый
00:26:10
но то, что мы можем сделать сейчас, находится ниже этого
00:26:13
имя класса, которое мы можем предоставить в строке
00:26:16
стили, поэтому я скажу стиль
00:26:19
поместите туда объект и установите
00:26:22
фон должен быть равен
00:26:25
а сейчас мы можем просто сказать синий
00:26:28
вот и все, конечно, это не то
00:26:30
фактический цвет, который мы хотим, мы хотим получить
00:26:33
цвет нашей темы помните во вступлении
00:26:37
я сказал, что мы сможем изменить
00:26:39
цвет темы нашего приложения, чтобы
00:26:42
здесь действительно важно, и, наконец, мы
00:26:45
можно установить радиус границы
00:26:47
что-то вроде 50
00:26:49
сделать это в круг
00:26:51
выглядим намного лучше, мы действительно можем
00:26:53
уменьшите масштаб сейчас, и мы все еще можем видеть это
00:26:55
внизу справа, и если мы наведем на него курсор
00:26:58
мы видим, что настройки сейчас выглядят великолепно
00:27:01
конечно, это действительно ужасный синий цвет
00:27:04
но мы скоро добавим тематизацию
00:27:06
так что вы сможете выбирать между многими
00:27:09
различные предопределенные цвета
00:27:11
просто чтобы дать вам представление о том, как
00:27:13
готовый сайт будет выглядеть как вы
00:27:15
это видно прямо здесь, внизу справа
00:27:17
у нас есть тот же значок, и если мы нажмем
00:27:20
появится красивая боковая панель и
00:27:23
тогда ты сможешь сменить тему
00:27:25
цвет и, следовательно, цвет
00:27:27
круг тоже меняется
00:27:29
и как только мы реализуем эту тему
00:27:31
функциональность, которую мы сможем изменить
00:27:33
этот фон динамически и это
00:27:35
единственная причина, почему это написано в
00:27:38
встроенный стиль, а не внутри этого
00:27:40
имя класса отличное
00:27:42
теперь мы можем приступить к делу
00:27:44
создание боковой панели
00:27:46
чтобы мы могли перейти под всплывающую подсказку справа
00:27:49
здесь, а также под этим div
00:27:52
там мы можем проверить, есть ли меню
00:27:54
в настоящее время активен, поэтому мы можем сказать активен
00:27:57
меню
00:27:58
если это правда, то мы хотим визуализировать
00:28:01
div, в котором будет боковая панель
00:28:03
там
00:28:04
если это не так
00:28:06
тогда мы можем снова отрендерить div, но
00:28:09
внутри здесь мы собираемся немного
00:28:11
другой боковой панели это не произойдет
00:28:13
быть видимым, потому что ширина будет
00:28:15
быть установлен на ноль
00:28:17
но что это за активное меню?
00:28:20
ну, скоро эта переменная станет
00:28:23
исходя из нашего контекста, но пока
00:28:26
давайте просто заявим об этом прямо здесь
00:28:28
константное активное меню
00:28:30
равно и давайте установим его равным
00:28:34
правда в начале
00:28:35
отлично, теперь мы видим боковую панель справа
00:28:38
здесь
00:28:39
теперь давайте немного стилизуем эти элементы управления
00:28:42
я могу дать вам лучшее представление о том, как
00:28:44
это будет выглядеть как
00:28:46
конечно, ты можешь посетить магазинчик
00:28:48
панель мониторинга для приложения Cell Dot, а затем
00:28:51
ты можешь увидеть сам, но я оставлю
00:28:53
этот сайт прямо здесь и всякий раз, когда мы
00:28:56
начну внедрять новую функцию, я
00:28:58
собираюсь показать вам, что мы пытаемся
00:29:00
достичь с помощью кода, который мы будем
00:29:01
пишем, поэтому в данном случае мы, конечно,
00:29:04
пытаюсь реализовать эту боковую панель
00:29:07
появляться и исчезать, чтобы сделать это, давайте
00:29:11
примените некоторые имена классов к нашему div, эти
00:29:14
имена классов будут
00:29:16
имя класса равно w тире 72, что
00:29:20
означает ширину около 18 баран
00:29:24
тогда мы тоже это исправим
00:29:27
а также укажите имя класса боковой панели
00:29:30
в темном режиме мы собираемся установить фон
00:29:33
тире вторичное
00:29:34
тире темный тире bg, а также обычно
00:29:39
задний фон будет белым, так что теперь это
00:29:42
собираюсь дать ему немного тени
00:29:44
ниже, я не уверен, что вы это видите
00:29:46
это едва видно, но после того, как мы
00:29:48
реализовать все стили, которые он собирается
00:29:50
быть ясно видимым теперь, конечно,
00:29:53
боковой панели здесь не будет
00:29:55
просто текст на боковой панели, скоро мы
00:29:57
собираюсь реализовать настоящую боковую панель
00:30:00
компонент, а пока давайте просто оставим его
00:30:03
как текст и продолжайте создавать app.js
00:30:06
код
00:30:07
если боковая панель не активна, мы можем
00:30:09
просто установите имя класса
00:30:11
быть равным w
00:30:13
тире 0, что означает, что ширина равна 0, а также
00:30:18
в темном режиме
00:30:20
bg тире вторичное тире темное тире фон
00:30:24
так что теперь, если мы переключим это на ложь
00:30:28
вручную
00:30:29
вы можете заметить, что что-то не так
00:30:31
выглядит правильно, посмотрим
00:30:34
и, как вы можете видеть, теперь мы это потеряли
00:30:36
боковая панель и только текст, который здесь
00:30:39
видно, так что, конечно, просто боковая панель
00:30:42
этого позже не будет
00:30:44
как только мы реализуем этот компонент
00:30:47
теперь под этим динамическим блоком кода мы
00:30:50
может иметь div
00:30:51
и это будет div для нашего
00:30:53
Панель навигации
00:30:55
поэтому давайте применим другой класс
00:30:57
названия в зависимости от того, открыто ли меню
00:31:00
в настоящее время активен, поэтому мы можем сказать класс
00:31:02
имя, а затем сделайте это динамическим блоком
00:31:05
кода
00:31:06
если активное меню истинно
00:31:09
затем мы хотим применить строку, которая
00:31:12
будет выглядеть примерно так
00:31:14
темный
00:31:15
BG Dash Главная черта BG
00:31:19
обычно BG Dash Main Dash BG
00:31:23
Мин тире h тире экран
00:31:26
на средних аппаратах МЛ-72
00:31:30
и w тире полное, так что это если меню
00:31:34
активен
00:31:36
тогда если меню не активно
00:31:39
тогда мы сможем скопировать почти все
00:31:42
этого
00:31:43
давайте скопируем и вставим это сюда
00:31:45
нам понадобится темный фон, основной фон
00:31:49
нам понадобится минимальный экран
00:31:51
и нам также понадобится полная буква w, но мы
00:31:54
не нужно
00:31:55
mdml72 вместо этого нам нужно иметь
00:31:58
гибкая черта 2.
00:32:01
как вы можете видеть, это довольно
00:32:03
аналогично, когда он открыт или закрыт
00:32:06
и что мы можем сделать, это создать шаблон
00:32:10
строка, а затем замените весь код
00:32:12
это повторяется, это небольшой урок
00:32:15
просто javascript как уменьшить
00:32:18
повторяющийся код
00:32:20
Итак, сначала давайте найдем все части
00:32:22
код, который повторяется
00:32:24
так здесь похоже все
00:32:27
включая W полный
00:32:29
единственное, что отличается, это
00:32:31
MD и Flex прямо здесь
00:32:33
поэтому внутри имени класса давайте создадим
00:32:36
строка шаблона, которая выглядит следующим образом
00:32:39
и эта строка шаблона будет
00:32:41
включить все общие классы
00:32:44
так что все плюс полная черта
00:32:47
так что теперь мы избавились от всего этого
00:32:50
вот и все, и единственная разница в том, что
00:32:54
md и flex, так что теперь внутри этого
00:32:58
строка шаблона, мы можем просто сказать, если
00:33:00
меню активно, затем примените mdml и
00:33:04
обычно применяют flex2
00:33:07
таким образом мы сэкономили много кода и
00:33:10
добился того же вида
00:33:12
теперь внутри этого div мы собираемся
00:33:14
есть еще один div
00:33:16
и у этого div будет класс
00:33:19
имя, равное фиксированному
00:33:21
и я знаю, что это может выглядеть немного
00:33:23
поначалу странно, особенно если у тебя есть
00:33:25
никогда не использовал попутный ветер, но попутный ветер есть
00:33:28
действительно полезно и позволяет вам больше
00:33:30
легко писать стили
00:33:32
если вы никогда не использовали его раньше
00:33:35
я бы настоятельно рекомендовал вам открыть
00:33:37
их документы параллельно с этим
00:33:39
редактор и всякий раз, когда я печатаю определенный
00:33:42
стиль, например, с полным тире, ты можешь
00:33:45
просто зайди в поиск и напиши это
00:33:47
и нажмите прямо здесь
00:33:49
это покажет вам, что именно
00:33:52
это имя класса, например, w-4
00:33:56
собираюсь занять всю ширину div
00:33:59
а еще есть отличное расширение, так что
00:34:02
если вы зайдете в расширения и наберете
00:34:04
попутный ветер
00:34:05
там вы можете найти CSS попутного ветра
00:34:07
IntelliSense
00:34:08
это расширение произойдет, когда вы
00:34:11
наведите указатель мыши на определенное свойство, и вы получите
00:34:13
полное объяснение того, что именно CSS
00:34:17
стили применяются к этому классу, поэтому w
00:34:21
тире полное просто устанавливает ширину 100
00:34:25
и еще раз, когда я пройду через все
00:34:27
имена классов, и я записываю их, если
00:34:30
что-то не знакомо, просто пауза
00:34:33
видео, а затем скопируйте это имя класса
00:34:36
вставьте его в документацию по таблицам и узнайте, что
00:34:39
речь идет о том, что это лучший способ учиться
00:34:42
и совершенствоваться как разработчик
00:34:45
с учетом сказанного, давайте создадим еще один div
00:34:48
внутри нашего текущего div
00:34:50
и у этого div будет класс
00:34:53
имя
00:34:54
равен фиксированному
00:34:57
MD статический
00:34:59
BG Dash Главная черта BG
00:35:03
в темном режиме bg тире основная тире темная тире
00:35:08
бг
00:35:09
у него будет стиль навигационной панели и
00:35:12
мы ворвемся туда, мы сможем
00:35:15
просто введите navbar сейчас, но позже
00:35:18
мы собираемся использовать настоящую панель навигации
00:35:21
компонент
00:35:22
помни, сейчас мы просто собираемся
00:35:24
через настройку app.js, а затем
00:35:26
скоро мы заменим все
00:35:28
этих текстов прямо здесь с реальными
00:35:31
компоненты
00:35:32
теперь ниже этого div и друг под другом
00:35:35
div, мы можем создать основной div для
00:35:38
маршрутизация
00:35:40
так что это будет пустой элемент div с
00:35:42
никаких названий классов, и вот мы здесь
00:35:45
будут наши маршруты
00:35:48
элемент маршрутов принадлежит реакции
00:35:50
Дом маршрутизатора, и это контейнер для
00:35:53
вложенное дерево элементов, которое разветвляется на
00:35:56
конкретное место, поэтому мы собираемся
00:35:58
внутри там разные маршруты
00:36:01
каждый маршрут представляет собой самозакрывающийся тег, который
00:36:04
есть путь
00:36:06
в этом случае первый будет
00:36:08
быть просто косой чертой или домом
00:36:11
и тогда у него есть элемент, который вы
00:36:13
хочу сделать
00:36:14
в этом случае элемент может быть строкой
00:36:17
электронной коммерции
00:36:21
вот и все, вы можете увидеть это прямо здесь
00:36:23
правая сторона
00:36:25
конечно наши элементы не собираются
00:36:27
быть простыми строками, каждый элемент собирается
00:36:30
быть отдельной страницей
00:36:33
но давайте сначала продолжим и создадим все
00:36:35
маршруты, а затем мы собираемся
00:36:37
заменить все эти элементы фактическими
00:36:40
страницы
00:36:41
я собираюсь немного расширить это
00:36:44
вот и все
00:36:45
и тогда у нас будет второй
00:36:46
маршрут
00:36:47
путь будет прямой косой чертой
00:36:51
электронная коммерция
00:36:52
и тогда мы тоже хотим показать то же самое
00:36:54
вкладка электронной коммерции вот такая
00:36:57
это будет домашняя страница, поэтому, если
00:37:00
мы немного расширим это и перейдем к
00:37:02
электронная коммерция, вы можете видеть, что у нас есть это
00:37:04
отличный вид прямо здесь
00:37:06
то же самое произойдет, если мы просто пойдем
00:37:08
косая черта, мы покажем то же самое
00:37:11
компонент
00:37:12
теперь нам нужно реализовать маршрутизацию для
00:37:14
все остальные страницы для заказов
00:37:17
сотрудники, клиенты и так далее, так что давайте
00:37:21
добавьте их прямо сейчас
00:37:23
мы даже можем добавить некоторые комментарии, перейдя
00:37:26
над нашими маршрутами, контролируя и
00:37:28
затем нажмите косую черту
00:37:30
это будет наша панель управления
00:37:34
ниже у нас будет что-то вроде
00:37:36
наши страницы
00:37:38
мы собираемся создать самозакрывающийся
00:37:40
компонент маршрута
00:37:41
и первая страница в нашем списке собирается
00:37:43
называться приказами
00:37:45
и мы можем визуализировать строку элемента
00:37:48
заказы
00:37:49
тогда мы можем продублировать это два раза
00:37:51
вторая страница будет вперед
00:37:54
сократить сотрудников
00:37:56
и затем он собирается отобразить
00:37:58
компонент сотрудников, который мы собираемся
00:38:00
создать позже
00:38:02
третий будет клиентами
00:38:05
и этот элемент будет клиентами
00:38:08
мы просто следуем этой структуре
00:38:10
Прямо здесь
00:38:11
теперь у нас будет четыре разных
00:38:13
маршруты приложений и, наконец, семь
00:38:15
различные графики маршрутов
00:38:17
так что давайте освободим немного места
00:38:19
давайте добавим комментарий для приложений
00:38:23
и мы можем просто дублировать один из
00:38:26
маршруты выше
00:38:27
первым приложением будет канбан
00:38:30
доска
00:38:31
этот клон jira или trello
00:38:34
и он отобразит то же самое
00:38:35
компонент
00:38:37
мы можем повторить это еще три раза
00:38:40
тогда у нас будет редактор
00:38:43
и то же самое здесь, компонент редактора
00:38:47
тогда у нас будет календарь
00:38:49
а также компонент календаря
00:38:52
наконец-то у нас будет цвет
00:38:54
выбор тире
00:38:56
а также элемент будет
00:38:58
выбор цвета
00:39:01
написано вместе вот так
00:39:04
и, наконец, мы можем продублировать один маршрут
00:39:07
мы можем освободить место для наших диаграмм
00:39:10
и есть семь или восемь разных
00:39:13
графики, первый из которых — это линия, поэтому мы можем
00:39:16
просто скажи строку прямо здесь
00:39:18
и мы можем дублировать это множество разных
00:39:20
раз для каждого типа диаграммы
00:39:23
у нас будет диаграмма областей
00:39:25
то же самое, вот здесь, гистограмма
00:39:29
и элемент панели
00:39:31
круговая диаграмма
00:39:33
вот так, а также элемент пи
00:39:36
тогда у нас есть финансовые возможности
00:39:39
диаграмма
00:39:40
Прямо здесь
00:39:42
у нас есть диаграмма сопоставления цветов
00:39:46
такой цвет
00:39:47
картографирование
00:39:49
а еще у нас есть пирамида
00:39:52
диаграмма
00:39:54
пирамида, а также элемент пирамиды
00:39:59
и последний в нашем списке — это
00:40:01
диаграмма с накоплением, поэтому мы можем сказать «сложенная»
00:40:04
Прямо здесь
00:40:06
вот и все, теперь у нас есть все это
00:40:09
разные маршруты, и если мы наберем строку
00:40:12
прямо здесь вы должны увидеть
00:40:14
линия едва в правом верхнем углу
00:40:17
конечно, мы сделаем такой вид
00:40:20
станет намного лучше, как только мы реализуем
00:40:22
эти компоненты, так что сейчас может быть лучшим
00:40:26
пора это сделать, мы можем пойти дальше и
00:40:28
доработать структуру файлов и папок
00:40:31
путем создания всех компонентов и
00:40:34
все страницы, которые нам понадобятся
00:40:36
на протяжении всего этого приложения
00:40:39
это потребует некоторой тяжелой работы
00:40:42
но это сделает нашу жизнь намного проще
00:40:45
позже, потому что мы сможем просто
00:40:47
импортируйте все компоненты, которые у нас уже есть
00:40:50
создано так с учетом сказанного
00:40:52
давайте добавим шаблонную структуру для
00:40:55
все наши компоненты, а также все
00:40:58
наши страницы
00:40:59
мы можем начать с компонентов
00:41:01
курс
00:41:02
внутри папки компонентов мы можем
00:41:04
создайте новый файл с именем button.jsx
00:41:09
внутри каждого нового компонента, который мы создаем
00:41:12
мы собираемся запустить
00:41:13
команда rafce, которая создаст
00:41:16
простая файловая структура
00:41:19
теперь мы можем создать новую папку на этот раз
00:41:21
внутри папки компонентов под названием
00:41:24
графики
00:41:25
внутри там мы можем создать наш первый
00:41:27
диаграмма под названием линия
00:41:29
диаграмма
00:41:30
точка JSX
00:41:32
снова просто запустите raf
00:41:36
давайте повторим процесс для другого
00:41:38
диаграмма под названием pi dot jsx и снова введите
00:41:42
р-а-ф-с-е
00:41:44
мы можем продолжить это с помощью искровой линии
00:41:47
dot jsx — это еще одна диаграмма
00:41:51
и, наконец, мы собираемся импортировать
00:41:53
сложенный
00:41:55
dot jsx — это еще одна диаграмма
00:41:58
мы закончили с диаграммами, так что вы
00:42:00
можем просто закрыть эту папку, и мы сможем
00:42:02
приступим к добавлению новых компонентов в
00:42:04
папка компонентов
00:42:06
под нашей кнопкой мы собираемся разместить
00:42:09
тележка
00:42:10
jsx
00:42:11
снова просто запустите raf
00:42:14
ниже этого у нас будет
00:42:16
чат.jsx
00:42:19
опять просто р-а-ф-с-е
00:42:22
тогда у нас будут диаграммы
00:42:25
заголовок
00:42:26
dot jsx и снова можно ввести rafce
00:42:31
давайте продолжим, мы собираемся
00:42:32
создать footer.jsx
00:42:36
и повторите процесс
00:42:38
ниже нижнего колонтитула у нас будет наш
00:42:40
заголовок
00:42:42
jsx
00:42:43
затем под заголовком мы собираемся
00:42:45
есть наша панель навигации
00:42:48
jsx
00:42:49
под панелью навигации у нас будет наш
00:42:52
уведомление
00:42:54
точка jsx под уведомлением о том, что мы
00:42:56
у боковой панели будет точка jsx
00:43:00
осталось еще два, и мы собираемся
00:43:02
есть компонент под названием theme
00:43:05
настройки
00:43:06
dot jsx и, наконец, последний компонент
00:43:10
это профиль пользователя
00:43:13
точка JSX
00:43:15
и, наконец, запустите там раф-рейс
00:43:19
и это вся наша структура всех
00:43:23
компонентов, которые мы собираемся
00:43:25
используйте сейчас, чтобы их было легче экспортировать, мы
00:43:28
можно создать новый файл с именем index.jsx
00:43:33
ниже в описании вы сможете
00:43:35
чтобы найти суть GitHub для этого индекса
00:43:38
файл
00:43:39
и после того, как вы скопируете и вставите это сюда, вы
00:43:41
мы видим, что мы просто экспортируем все
00:43:44
из необходимых компонентов мы просто
00:43:46
созданный прямо во всем нашем
00:43:48
приложение
00:43:49
это позволит нам просто
00:43:52
импортируйте их все в одну строку
00:43:55
большой
00:43:56
теперь просто завершить работу над файлом и следовать
00:43:58
структуру мы можем повторить ту же самую
00:44:00
вещь для наших страниц
00:44:02
будет довольно много страниц
00:44:05
так что потерпите, мы можем это сделать, но
00:44:08
как я уже сказал, это займет еще немного
00:44:10
время в начале, но когда мы начинаем кодировать
00:44:13
все будет так много
00:44:16
быстрее, потому что мы сделали это в начале
00:44:18
Итак, давайте создадим нашу первую страницу, которая будет
00:44:20
будет называться Calendar.jsx
00:44:23
и вы также можете ввести rafce
00:44:26
внутри страниц, которые мы собираемся также
00:44:28
у нас есть графики, которые будут
00:44:31
папку внутри этой папки с графиками, которую мы
00:44:34
можем создать нашу первую диаграмму под названием Area
00:44:37
точка JSX
00:44:38
снова р-а-ф-с-е, я даже не думаю, что
00:44:41
приходится больше об этом упоминать, потому что
00:44:43
ты уже делаешь это так быстро
00:44:46
тогда у нас будет точка в формате jsx
00:44:49
и снова рафс
00:44:51
у нас будет следующий, который
00:44:53
будет звонить
00:44:55
маппинг.jsx
00:44:57
после этого у нас будет наш
00:44:59
финансовый
00:45:01
jsx нам также понадобится линейная диаграмма, так что давайте
00:45:05
просто введите строку с точкой jsx, которая нам тоже понадобится
00:45:09
круговая диаграмма, скажем, pi dot jsx, мы
00:45:12
нужна пирамида
00:45:14
такая пирамида
00:45:16
jsx
00:45:17
и, наконец, нам нужен stacked.jsx
00:45:22
это все диаграммы, и мы просто
00:45:24
осталось еще несколько страниц
00:45:27
поэтому внутри папки страниц создайте
00:45:29
новый файл под названием color
00:45:32
сборщик
00:45:33
jsx
00:45:34
затем мы создадим customer.jsx
00:45:38
и похоже, я забыл сделать рафс
00:45:40
не забудь это сделать, потому что
00:45:42
тогда компонент не будет существовать тогда
00:45:45
у нас будет ecommerce.jsx
00:45:48
у нас также будет редактор
00:45:52
jsx, у нас будет
00:45:55
сотрудники
00:45:57
jsx, наконец, нам нужен канбан
00:46:01
jsx
00:46:04
и наконец нам нужны заказы
00:46:08
dot jsx и, как мы уже сделали с
00:46:10
компоненты, мы также можем сделать то же самое
00:46:12
со страницами создать новую
00:46:15
index.jsx и ниже в
00:46:18
описание в github gist, вам следует
00:46:20
сможем найти файл, куда мы экспортируем
00:46:23
со всеми этими страницами мы закончили
00:46:26
всю структуру файлов и папок и
00:46:29
с этого момента все будет просто течь
00:46:31
плавно, так что теперь все, что вы можете сделать, это нажать
00:46:34
в любом месте вашей визуальной студии
00:46:37
Ctrl или команда, а затем продолжайте нажимать w
00:46:40
закрыть все открытые файлы
00:46:43
делая это, ты также собираешься
00:46:45
обратите внимание, если в каком-то файле отсутствует rafce
00:46:48
на случай, если вы пропустили это, давайте закроем все
00:46:50
из них и да, похоже, есть
00:46:52
кое-что, где я пропустил рафс, так что я
00:46:56
добавлю это прямо сейчас
00:46:58
вот и все
00:47:00
и это обязательно закроется
00:47:02
все ваши открытые в данный момент файлы
00:47:04
теперь у нас чистая рабочая среда
00:47:08
мы можем вернуться к app.js и теперь можем
00:47:11
импортируйте все эти компоненты и страницы, чтобы
00:47:15
чтобы сделать это над нашим приложением импорта css, мы
00:47:18
можно сказать импорт в фигурных скобках
00:47:21
панель навигации
00:47:23
нижний колонтитул
00:47:24
боковая панель
00:47:26
тема
00:47:27
настройки, и они берутся из
00:47:30
из-за этого компоненты косой черты
00:47:33
index.js, мы можем импортировать все
00:47:36
в одну строку
00:47:37
а затем мы займемся импортом
00:47:40
электронная коммерция
00:47:41
заказы
00:47:43
календарь сотрудников
00:47:46
сложенный
00:47:48
пирамида
00:47:50
клиенты
00:47:53
канбан
00:47:55
область
00:47:57
бар
00:47:59
Пи
00:48:00
финансовый
00:48:02
палитра цветов, а также отображение цветов
00:48:07
и, наконец, редактор, и это
00:48:10
исходя из этой косой черты страниц
00:48:14
вот и все, теперь у нас должно быть
00:48:16
все, что нам нужно, похоже, у нас есть
00:48:19
проблема внутри наших компонентов
00:48:22
внутри файла index.jsx
00:48:25
пойдем туда
00:48:27
это похоже на определение правила
00:48:29
импортировать без цикла
00:48:31
не был найден, потому что у меня есть это
00:48:34
линия прямо здесь для тебя, она не пойдет
00:48:36
быть там, пока я разрабатываю это
00:48:39
проект, я использовал eslint, но теперь мы
00:48:41
мне это не нужно, так как мы собираемся сохранить
00:48:43
наш код чист с самого начала
00:48:46
отлично, и теперь мы можем видеть наш код таким, какой он есть
00:48:49
было, если мы перейдем на локальный хост 3000, мы сможем
00:48:52
см. электронную коммерцию прямо здесь, но, конечно
00:48:54
мы только что создали эти компоненты и мы
00:48:56
никогда не используйте их сейчас вместо
00:48:59
боковая панель прямо здесь мы можем просто открыть
00:49:02
новый самозакрывающийся компонент
00:49:04
называется боковой панелью
00:49:06
теперь ничего не изменится для
00:49:08
панель навигации, боковая панель или что-то еще
00:49:11
потому что эти компоненты представляют собой просто
00:49:13
div, содержащий тот же текст, но этот
00:49:16
позволит нам реализовать
00:49:18
реальная логика внутри каждого из них
00:49:21
компоненты
00:49:22
так что давайте просто продолжим через это
00:49:25
и давайте изменим весь этот текст
00:49:26
элементы в соответствующие им
00:49:28
компоненты, поэтому нам придется сделать это для
00:49:31
боковая панель два раза для навигационной панели справа
00:49:34
здесь
00:49:35
и тогда нам придется делать это для каждого
00:49:37
один из этих компонентов
00:49:39
Самый быстрый способ сделать это — удерживать
00:49:42
Alt в Windows, а затем нажмите
00:49:45
сразу после входа в вступительную строку
00:49:48
все эти маршруты
00:49:49
так что просто удерживайте Alt и затем щелкните правой кнопкой мыши
00:49:52
после открывающей строки в двойных кавычках
00:49:56
так что продолжайте делать это для каждого
00:49:58
элемент
00:50:00
вот и давайте повторять это до тех пор, пока
00:50:02
конец
00:50:05
вот и все
00:50:06
и теперь что вы можете сделать, это нажать
00:50:08
Backspace, чтобы удалить первое отверстие
00:50:12
знак
00:50:13
откройте фигурную скобку, потому что нам нужно
00:50:15
быть там внутри
00:50:17
откройте тег, вот так
00:50:19
теперь удерживайте Ctrl, а затем нажмите стрелку
00:50:22
правильно еще раз
00:50:24
закройте фигурную скобку и нажмите кнопку
00:50:27
косая черта и закрывающий тег, чтобы закрыть
00:50:30
маршрут также
00:50:31
с этим
00:50:32
мы эффективно изменили все наши
00:50:36
строки на компоненты
00:50:38
я знаю, что это было что-то вроде пальца
00:50:40
тренировка, и она действительно проверила вашу
00:50:42
умение использовать сочетания клавиш
00:50:44
эффективно
00:50:45
но если это не сработало для тебя
00:50:48
просто вручную измените каждый
00:50:50
нить
00:50:51
из этого
00:50:53
в это
00:50:55
это заставит это работать и это
00:50:57
так у нас будут все наши компоненты
00:50:59
теперь мы можем приступить к делу и начать
00:51:01
работали над этим всю нашу работу
00:51:05
настройка теперь у нас есть весь файл и
00:51:07
структура папок всех наших страниц и
00:51:10
наши компоненты, а также приложение js
00:51:13
сделанный
00:51:14
конечно, мы потратили много времени на
00:51:16
настройка, и наше приложение выглядит не так
00:51:19
хорошо, кажется, ничего не видно, но
00:51:22
очень скоро, просто потому, что мы
00:51:24
потратил некоторое время на правильный файл
00:51:26
структуру, мы сможем очень легко
00:51:29
создайте наше приложение и начните кодировать
00:51:32
сразу отличная работа по созданию этого
00:51:35
здесь и сейчас начинается веселье
00:51:38
и, наконец, мы готовы начать кодирование
00:51:41
из нашей боковой панели, тогда мы сможем
00:51:43
посмотри, что происходит, но даже прямо сейчас
00:51:46
мы должны быть в состоянии увидеть что-то
00:51:48
экран подозрительно слишком белый
00:51:51
достаточно
00:51:52
так что мы можем пойти проверить
00:51:55
открой консоль и посмотри
00:51:57
электронная коммерция не определена
00:52:00
здесь должна была быть электронная коммерция
00:52:03
с маленькой буквы c
00:52:05
так что давай быстро исправим это прямо здесь
00:52:08
и здесь тоже
00:52:10
как только мы это исправим и перезагрузим
00:52:12
страница
00:52:13
похоже, у нас все еще есть ошибка
00:52:16
все в порядке, давайте откроем консоль
00:52:18
еще раз
00:52:20
и похоже, что линия не определена, поэтому
00:52:24
давайте посмотрим, импортируем ли мы строку
00:52:25
правильно
00:52:27
похоже, мы не настолько, на что способны
00:52:30
do находится под страницами, мы можем добавить эту строку
00:52:34
импорт в конце
00:52:36
похоже, я это пропустил
00:52:38
как только мы добавим его сюда и перезагрузим страницу
00:52:41
у нас больше нет ошибок и мы можем
00:52:43
начнем кодировать нашу боковую панель, мы собираемся
00:52:46
чтобы включить его, установив true прямо здесь
00:52:49
вот и мы можем переключиться на наш
00:52:52
киберкомпонент, удерживая Ctrl, а затем
00:52:55
щелкнув левой кнопкой мыши, мы идем
00:52:58
теперь давайте перетащим наш редактор еще немного
00:53:00
сторону, и давайте начнем работать над нашим
00:53:03
боковая панель внутри нашей боковой панели, которую мы сначала
00:53:06
нужно иметь немного импорта
00:53:08
нам нужно импортировать компонент ссылки как
00:53:11
а также компонент навигационной ссылки
00:53:14
от реакции
00:53:16
маршрутизатор даш дом
00:53:18
это позволит нам переключиться
00:53:20
между несколькими разными страницами в нашем
00:53:22
приложение
00:53:24
так что я просто собираюсь немного потянуть это
00:53:26
подробнее здесь, а затем мы сможем импортировать несколько
00:53:28
значки
00:53:30
первый значок, который нам нужен, будет
00:53:32
импортировать в фигурные скобки si
00:53:36
магазин, где
00:53:38
и это будет исходить от реакции
00:53:41
значки косая черта, нам тоже нужен такой
00:53:44
тем более это будет импорт
00:53:47
Мэриленд
00:53:48
контур
00:53:49
отмена
00:53:50
и это будет исходить от
00:53:52
реагировать тире
00:53:55
косая черта, мд
00:53:58
наконец, нам нужна та самая всплывающая подсказка
00:54:00
компонент, чтобы мы могли сказать всплывающую подсказку импорта
00:54:03
компонент из которого будет добавлен
00:54:06
синхронизация слияния
00:54:07
косая черта ej2 и дальше пошло
00:54:10
реагировать
00:54:12
всплывающие окна
00:54:14
вот и все
00:54:15
мы также собираемся импортировать все
00:54:17
разные ссылки, поэтому импортируйте ссылки
00:54:20
и это будет исходить от
00:54:22
точка косая черта данные косая черта манекен так
00:54:26
это пустышки или демо-данные, это все
00:54:29
импорт, который нам нужен сейчас, и мы
00:54:32
наконец-то можем начать кодировать нашу боковую панель
00:54:35
наша боковая панель будет элементом div и
00:54:38
точнее, это будет div
00:54:40
с довольно большим количеством имен классов, чтобы мы могли
00:54:43
добавить свойство имени класса
00:54:45
и мы можем сказать
00:54:46
мл-3 для оставшейся маржи
00:54:49
h-экран, что означает полную высоту
00:54:52
на средних устройствах произойдет переполнение
00:54:55
быть скрытым
00:54:57
обычно переполнение будет установлено на
00:54:59
авто на средних устройствах и при наведении
00:55:04
для переполнения будет установлено значение auto
00:55:08
так
00:55:09
и наконец пб-10
00:55:12
как и в дополнении снизу, теперь внутри там
00:55:14
нам также нужно знать, доступно ли меню
00:55:16
активный
00:55:17
эта информация будет поступать от нашего
00:55:20
контекст состояния, но поскольку у нас нет
00:55:22
контекст уже, скажем так
00:55:25
константное активное меню равно true просто
00:55:28
фиктивная переменная, скоро мы собираемся
00:55:31
чтобы сделать это динамичным
00:55:32
поэтому мы можем открыть новый динамический блок
00:55:34
код и скажите, активно ли меню или активно
00:55:38
меню и конец
00:55:40
в этом случае мы можем сделать это рендеринг
00:55:43
из пустого фрагмента реакции и внутри
00:55:46
этого фрагмента у нас будет
00:55:48
div
00:55:49
у этого div будет имя класса
00:55:52
равно гибкому
00:55:54
оправдать тире между элементами и элементами
00:55:57
Центр приборной панели внутри, мы хотим
00:56:00
отобразить одну ссылку вот так
00:56:03
и эта ссылка будет указывать только на
00:56:06
косая черта
00:56:08
он также будет иметь нажатие
00:56:09
свойство
00:56:10
который на данный момент будет просто
00:56:13
пустая функция обратного вызова, которую мы собираемся
00:56:14
реализовать это очень скоро
00:56:16
и у него будет несколько названий классов
00:56:20
поэтому имя класса будет тире элементов
00:56:23
центр
00:56:24
и непосредственно перед тем, как мы начнем вводить
00:56:26
имена классов, возможно, было бы неплохо
00:56:28
уже добавил что-то в ссылку, поэтому мы
00:56:30
можно увидеть, что мы меняем
00:56:32
здесь мы собираемся это отрендерить
00:56:34
значок магазина си
00:56:37
и рядом с ним мы скажем
00:56:39
шопи это воображаемое имя нашего
00:56:42
компонент, мы можем поместить его внутри диапазона
00:56:45
такой элемент
00:56:47
вот и все
00:56:49
так что теперь, если мы сохраним это и перезагрузим
00:56:51
страница, вы можете видеть, что теперь у нас есть это
00:56:53
боковая панель во всю высоту, появляющаяся на
00:56:55
левая сторона и это уже выглядит так
00:56:58
намного лучше
00:56:59
поэтому давайте продолжим добавлять имена классов в
00:57:01
эту ссылку мы собираемся пропустить
00:57:03
свойство Dash 3, а также ml-3, которое
00:57:07
собираюсь подтолкнуть его немного слева
00:57:10
у него будет МТ-4, который собирается
00:57:12
оттолкнуть его от вершины
00:57:15
это будет гибкий контейнер, который
00:57:17
собирается сделать так, чтобы элементы появлялись в
00:57:19
строка, в которой будет текст
00:57:22
xl, чтобы сделать его больше, а также
00:57:25
тире шрифта очень жирный
00:57:27
мы также собираемся отслеживать его
00:57:29
рывок вот так
00:57:32
и, наконец, в темном режиме текст
00:57:35
будет белым, и обычно текст
00:57:38
это будет текстовый планшет
00:57:40
900
00:57:41
вот и все
00:57:43
так что, как вы можете видеть, использование попутного ветра может быть
00:57:45
действительно мощный, всего за несколько классов
00:57:48
имена, которые могут вам понравиться
00:57:50
боковая панель и ссылка прямо здесь и сейчас внизу
00:57:53
по этой ссылке мы хотим отобразить всплывающую подсказку
00:57:56
компонент
00:57:57
этот компонент всплывающей подсказки будет иметь
00:57:59
контент, равный меню
00:58:02
так
00:58:03
а также у него будет позиция
00:58:06
и эта позиция будет нижней
00:58:09
центр вот так
00:58:11
внутри мы можем отобразить кнопку
00:58:14
скажем, кнопка, и эта кнопка
00:58:17
просто буду иметь схему MD
00:58:19
отменить значок самозакрывания, как вы можете видеть
00:58:22
оно появилось прямо здесь, вверху справа
00:58:25
это закроет нашу боковую панель
00:58:28
конечно, это слишком мало
00:58:30
прямо сейчас, так что давай сделаем его немного больше
00:58:33
давайте применим несколько свойств к нашему
00:58:35
кнопка
00:58:36
мы можем сказать, что тип равен кнопке
00:58:39
мы также можем присвоить ему свойство onclick
00:58:42
что на данный момент мы оставим как есть
00:58:45
пустая функция обратного вызова позже
00:58:47
мы собираемся сделать это действительно близко
00:58:49
боковая панель
00:58:50
и мы также можем дать ему имя класса
00:58:53
равно текстовому тире xl
00:58:56
также закругленное тире полное
00:58:59
p-3 для заполнения
00:59:02
при наведении мы хотим установить тире заднего плана
00:59:05
светло-серый
00:59:07
верхний предел поля, где будет установлен mt
00:59:09
до 4
00:59:11
это будет элемент уровня блока
00:59:13
и на средних устройствах это будет
00:59:16
скрытый
00:59:17
вот и все
00:59:18
так что теперь это уже похоже на
00:59:20
отличная боковая панель, конечно, она не работает
00:59:23
пока что-нибудь, но достаточно скоро это будет
00:59:26
что мы можем сделать, это ниже этого div, мы можем
00:59:29
создайте еще один div, это будет
00:59:32
для наших реальных товаров
00:59:34
поэтому имя класса div здесь равно
00:59:38
мт-10, чтобы отделить его немного от верхнего
00:59:42
изменчивый раздел
00:59:44
там мы хотим перебрать наши ссылки и
00:59:47
что на самом деле представляют собой те ссылки, которые мы представляем
00:59:50
импортируя их из фиктивных данных, но если
00:59:52
вы в любой момент захотите проверить, что
00:59:54
это удерживая Ctrl, нажмите прямо здесь и
00:59:57
как вы можете видеть, это массив с
01:00:00
несколько объектов
01:00:01
каждый объект имеет заголовок и ссылку
01:00:04
свойство, указывающее на конкретные вещи
01:00:07
страницы указывают на три разные ссылки
01:00:10
например, заказы сотрудникам и клиентам
01:00:12
у каждого свой значок
01:00:15
так что давайте пройдемся по этим ссылкам
01:00:18
что мы можем сделать, так это сохранить link.map, мы
01:00:21
будет функция обратного вызова для
01:00:23
каждый элемент или каждая ссылка
01:00:26
и мы можем получить мгновенный возврат за
01:00:28
каждый из этих предметов
01:00:30
каждая ссылка будет элементом div
01:00:33
и у этого div будет класс
01:00:35
имя равно текстовому тире, серому тире 400.
01:00:40
у него также будет тире на полях 3 или
01:00:43
м 3 и пустые 4 поля сверху 4 и это
01:00:48
будет в верхнем регистре
01:00:50
внутри мы хотим отрендерить
01:00:52
название предмета с точкой теперь, если вы сохраните это
01:00:56
вы можете видеть, что заголовки наших ссылок
01:00:57
появиться прямо здесь, и это выглядит так
01:01:00
больше похоже на обычную боковую панель
01:01:02
так что похоже, что я сделал небольшой
01:01:04
ошибка
01:01:05
этого имени класса здесь не было
01:01:07
должен был перейти в этот div, этот div был
01:01:11
просто предполагается, что ключ равен
01:01:14
item.title, чтобы сделать его уникальным
01:01:16
но это имя класса должно было идти
01:01:19
на элементе p внутри него, так что правильно
01:01:22
здесь у нас есть элемент p, который имеет это
01:01:24
item.title внутри него, и тогда мы сможем
01:01:27
визуализировать это имя класса в этом элементе b
01:01:31
теперь под этим тегом b мы на самом деле
01:01:33
собираюсь пробежаться по ссылкам, так что давайте
01:01:35
откройте новый динамический блок кода и
01:01:38
скажите, что пункты точечные ссылки точечная карта и здесь
01:01:42
мы получим настоящую ссылку и мы
01:01:44
может иметь мгновенный возврат еще раз
01:01:47
по сути, это цикл внутри
01:01:49
петля
01:01:50
внутри здесь мы собираемся визуализировать
01:01:52
компонент навигационной ссылки, подобный этому
01:01:55
и их будет немало
01:01:57
свойства, первый из которых будет
01:02:00
2 куда мы указываем
01:02:02
и это будет динамично, поэтому мы сможем
01:02:04
визуализировать строку шаблона
01:02:06
скажи косую черту, знак доллара, фигурный
01:02:08
имя точки ссылки на фигурные скобки
01:02:12
ключ также будет связан
01:02:14
имя, так как нам нужно сделать его уникальным на
01:02:17
щелчок тоже будет пока просто
01:02:20
пустая функция обратного вызова, но мы
01:02:22
скоро реализую логику
01:02:25
и затем нам нужно указать имя класса
01:02:27
и стиль
01:02:29
теперь имя класса будет немного
01:02:31
отличается от того, что мы обычно делаем, что
01:02:34
мы можем сказать, это имя класса, а затем внутри
01:02:37
оттуда мы собираемся позвонить
01:02:39
функция
01:02:40
эта функция будет принимать состояние
01:02:44
чтобы мы могли деструктурировать значение фигурных
01:02:47
брекеты, а затем мы получим
01:02:49
активное состояние
01:02:51
за каждый конкретный товар
01:02:53
и затем на основе этого состояния мы можем
01:02:55
отображать разные имена классов, это
01:02:58
передано нам напрямую с помощью навигации
01:03:01
компонент ссылки, принадлежащий реагирующему маршрутизатору
01:03:04
Дом, что мы можем сделать, это определить вверху
01:03:07
два разных имени класса для активного и
01:03:11
не активные ссылки
01:03:13
давайте сделаем это прямо здесь, сказав const
01:03:16
активная ссылка
01:03:18
равно строке, это будет
01:03:20
гибкий
01:03:22
пункты в центре тире
01:03:24
разрыв тире 5
01:03:26
pl для заполнения слева, 4 pt для заполнения сверху
01:03:29
три
01:03:30
отступы снизу pb тире 2.5
01:03:34
закругленная черточка LG
01:03:37
и текстовое тире белое, а также текстовое тире
01:03:41
Мэриленд
01:03:42
и, наконец, m-2 для запаса 2. Теперь мы
01:03:46
будет константная нормальная ссылка
01:03:49
Прямо здесь
01:03:50
и это также будет строка
01:03:53
мы собираемся скопировать весь активный
01:03:55
связь
01:03:56
и просто замените последние несколько свойств
01:03:59
нам не нужен М-2
01:04:02
скорее мы собираемся добавить текстовое тире
01:04:05
серый
01:04:06
700, так как мы собираемся это сделать
01:04:08
серый нам не нужен этот белый цвет
01:04:10
вот здесь мы еще добавим темноту
01:04:14
режим
01:04:15
текстовое тире серое тире 200
01:04:18
в темном режиме и при наведении мы собираемся
01:04:21
добавить текстовое тире черного цвета
01:04:24
и просто при наведении мы собираемся изменить
01:04:26
фон к светло-серому
01:04:30
и m будет равно 2 для поля 2.
01:04:34
теперь мы можем использовать эти две ссылки вниз
01:04:36
ниже
01:04:37
мы можем сказать, активен ли он
01:04:40
затем мы собираемся отобразить активный
01:04:43
связь
01:04:44
иначе мы собираемся отрендерить
01:04:47
нормальная ссылка
01:04:49
и если мы сохраним это
01:04:51
конечно, мы пока ничего не видим
01:04:52
потому что мы не ввели никаких ссылок
01:04:54
Прямо здесь
01:04:55
так что мы можем сделать это внутри навигации
01:04:58
ссылка, мы можем отобразить значок точки ссылки
01:05:02
и ниже мы можем визуализировать диапазон
01:05:04
элемент
01:05:05
у которого есть имя класса
01:05:08
равно капитализации
01:05:12
и внутри него мы можем визуализировать
01:05:14
имя точки ссылки
01:05:16
вот и все, если мы спасем тебя
01:05:19
видите, у нас есть эти замечательные элементы списка
01:05:23
на нашей боковой панели, которая автоматически
01:05:25
прокручивается, и теперь у нас есть эти замечательные
01:05:28
разделы или заголовки, и если вы действительно
01:05:31
наведите курсор на ссылку и вы увидите, что мы
01:05:33
возьми этот красивый пункт списка, он ищет
01:05:37
большой
01:05:38
и снова причина, по которой мы сделали это таким
01:05:40
просто, потому что мы используем попутный ветер
01:05:43
и мы просто вводим все
01:05:44
конкретные имена классов прямо внутри нашего
01:05:47
код
01:05:48
большой
01:05:49
определенно тот факт, что у нас было это
01:05:51
фиктивные данные помогли, потому что у нас не было
01:05:53
выписать все конкретные имена
01:05:55
для разных элементов списка
01:05:57
и иконки были выбраны заранее так
01:06:00
Замечательно
01:06:01
судя по виду, это будет так
01:06:04
наша боковая панель, но что вы скажете, что мы
01:06:07
внедрить наш API контекста реагирования сейчас
01:06:10
это позволит нам отслеживать
01:06:12
состояния навигационной панели
01:06:15
выяснить, должен ли он быть открыт в данный момент
01:06:17
или закрыто
01:06:18
так что давай сделаем это прямо сейчас
01:06:21
чтобы создать наш контекст, мы можем закрыть
01:06:23
открытые в данный момент файлы
01:06:25
а затем перейти к источнику
01:06:28
контекст, а затем создайте новый файл
01:06:31
называется
01:06:32
поставщик контекста
01:06:34
dot js внутри которого мы можем импортировать
01:06:38
реагировать
01:06:40
а также создать контекст
01:06:43
использовать контекст
01:06:45
и, наконец, используйте состояние, и это
01:06:48
исходя из реакции
01:06:50
конечно, я ошибся в контексте
01:06:52
вот так давайте это исправим
01:06:54
и тогда нам придется сказать константное состояние
01:06:57
контекст
01:06:59
равно
01:07:00
создаем контекст, а затем мы называем это как
01:07:03
функция
01:07:04
ниже мы можем определить нашу начальную
01:07:06
состояние
01:07:08
и это начальное состояние — не что иное, как
01:07:10
чем простой объект
01:07:12
наш чат вначале будет настроен
01:07:14
ложному
01:07:16
и этот чат означает, что это сейчас
01:07:19
открыт или закрыт
01:07:21
тогда у нас будет тележка, которая
01:07:23
также по умолчанию будет установлено значение
01:07:26
ЛОЖЬ
01:07:27
у нас также есть наш профиль пользователя
01:07:30
для которого установлено значение false
01:07:33
и наконец мы получили наше уведомление
01:07:36
для которого также установлено значение false
01:07:38
так что это просто состояние всех этих
01:07:40
разные вещи, на которые мы можем нажать и
01:07:43
открыть
01:07:44
вначале для них установлено значение false
01:07:47
теперь мы можем сказать экспортировать константный контекст
01:07:51
поставщик
01:07:53
этот поставщик контекста является базовой реакцией
01:07:57
Компонент функции стрелки, который в реквизите
01:08:00
имеет детскую собственность
01:08:02
внутри там мы можем объявить все
01:08:05
различные виды государства и, конечно же,
01:08:07
мы можем что-то вернуть
01:08:09
обычно то, что вы возвращаете внутри
01:08:11
поставщик контекста — это контекст состояния
01:08:15
поставщик точек
01:08:17
так
01:08:18
но вернуть это
01:08:20
обычно то, что вы возвращаете внутри
01:08:22
поставщик контекста
01:08:24
является поставщиком точек контекста состояния
01:08:28
самое главное, что это
01:08:30
поставщик должен иметь значение
01:08:32
свойство
01:08:34
поэтому мы можем немного расширить его и создать
01:08:36
стоимость собственности прямо здесь, которая является
01:08:39
объект
01:08:40
какие бы ценности вы ни проходили здесь
01:08:43
они будут пропущены через все
01:08:45
компоненты внутри всего нашего
01:08:47
приложение
01:08:48
поэтому, конечно, нам придется пройти
01:08:50
состояние — это наша боковая панель, открытая в данный момент или
01:08:53
он закрыт?
01:08:56
и вторая по важности вещь с
01:08:58
наш контекст таков, что ты всегда возвращаешься
01:09:01
дети внутри него
01:09:03
это означает, что все, что вы обертываете
01:09:05
контекст со всем, что находится внутри него
01:09:08
будет отображаться, поэтому, если вы обернете это
01:09:11
всю страницу с контекстом, который вы все еще
01:09:13
хочу вернуть эту реальную страницу правильно
01:09:16
вот тут-то и появляются дети
01:09:18
возвращает базовый компонент ниже
01:09:21
этот контекст, но теперь давайте добавим
01:09:25
все состояния или вся логика
01:09:27
наше приложение, что наш контекст
01:09:30
собираюсь иметь
01:09:31
первый, о котором мы уже говорили
01:09:33
о состоянии, так скажем, используется
01:09:37
государственный фрагмент
01:09:38
это будет называться активным меню и
01:09:42
установите активное меню и в начале оно
01:09:45
будет установлено значение true
01:09:47
вот и все
01:09:49
теперь мы можем просто пройти
01:09:52
это состояние перешло к значению, поэтому
01:09:55
прямо здесь значение — это объект
01:09:58
и мы скажем активное меню
01:10:01
активное меню
01:10:03
или, как вы уже знаете, если у вас есть оба
01:10:06
ключ и значение одного и того же значения
01:10:08
тогда вы можете просто опустить последнее
01:10:11
вот и все
01:10:12
Итак, теперь вопрос в том, как мы можем использовать
01:10:14
это активное меню внутри нашей боковой панели
01:10:18
или компоненты приложения, мы можем экспортировать
01:10:21
const что-то, называемое использованием
01:10:24
государственный контекст
01:10:26
и это просто функция, которая возвращает
01:10:29
вызов используемого контекста
01:10:32
но мы передаем, в каком контексте мы хотим
01:10:35
использовать
01:10:36
поэтому мы говорим: «Эй, дай мне данные»
01:10:38
из контекста, используя контекст
01:10:41
и указываем какой из штатов
01:10:43
контекст в нашем приложении, который мы собираемся
01:10:45
иметь один контекст, но в большем
01:10:47
приложений, вы можете иметь несколько
01:10:49
поставщики контекста
01:10:51
в любом случае, как только вы создадите свой
01:10:53
провайдер, которому вы визуализируете детей и
01:10:55
передать значения, которые вам нужно обернуть
01:10:58
приложение с этим
01:10:59
чтобы мы могли зайти внутрь нашего index.js
01:11:04
внутри здесь мы можем импортировать
01:11:07
поставщик контекста
01:11:09
и это происходит от точечной косой черты
01:11:12
контексты, поставщик контекста с косой чертой
01:11:16
единственное, что вам нужно сделать, это обернуть
01:11:19
ваше приложение с поставщиком контекста, поэтому мы
01:11:22
могу сказать прямо здесь
01:11:23
поставщик контекста
01:11:25
и мы можем разместить наше приложение прямо внутри
01:11:28
это вроде так
01:11:29
конечно, давай сюда запятую поставим
01:11:32
и давайте расположим все правильно
01:11:35
вот и все
01:11:36
так что теперь внутри нашего приложения мы можем использовать все
01:11:40
из этих ценностей
01:11:42
и вопрос, конечно, как и
01:11:44
Ответ довольно прост
01:11:46
мы импортируем это, используя контекстный хук состояния, который мы
01:11:51
созданный
01:11:52
от
01:11:53
точечный слэш
01:11:55
контекстная косая черта
01:11:57
поставщик контекста
01:11:59
и мы называем это крючком вверху
01:12:01
константа
01:12:03
и мы извлекаем те ценности, которые хотим получить
01:12:05
в этом случае мы хотим получить активный
01:12:08
меню
01:12:10
это равносильно использованию контекста состояния и
01:12:13
мы называем это крючком
01:12:15
нам больше не нужно использовать этот статический
01:12:17
ценить
01:12:18
вот и все, теперь если мы вернемся к нашему
01:12:21
приложение
01:12:22
давайте посмотрим, где мы используем этот активный элемент
01:12:24
меню
01:12:25
это прямо здесь, так что давайте зайдем внутрь
01:12:28
нашу боковую панель и действительно сделайте это
01:12:30
функции делают что-то вроде открытия и
01:12:33
закрыть меню
01:12:34
нам придется повторить то же самое, что и мы
01:12:36
только что сделано, и это импортировать
01:12:39
контекст состояния использования
01:12:41
от
01:12:42
Контекст точечной косой черты Контекст прямой косой черты
01:12:45
провайдер, вот и мы используем его как
01:12:48
крючок прямо здесь, константа
01:12:51
активное меню
01:12:53
и это исходит от
01:12:55
использовать контекст состояния, конечно, здесь мы
01:12:59
нам не нужно просто активное меню
01:13:02
функцию настройки для меню, чтобы
01:13:04
мы можем открыть и закрыть его
01:13:06
поэтому, если мы вернемся к нашему провайдеру контекста
01:13:10
то, что мы можем сделать, это параллельно с активным
01:13:13
меню мы также можем передать активный набор
01:13:16
меню
01:13:17
таким образом, внутри нашего
01:13:21
боковая панель
01:13:23
мы тоже можем это получить
01:13:25
набор
01:13:26
активное меню
01:13:29
теперь внутри этого щелчка мы действительно можем
01:13:32
закройте боковую панель, чтобы мы могли сказать
01:13:36
является
01:13:37
функция обратного вызова
01:13:39
установить активное меню
01:13:41
к
01:13:42
ЛОЖЬ
01:13:43
и пока мы здесь, мы также можем изменить
01:13:45
Вот этот
01:13:46
вместо этого мы собираемся на самом деле
01:13:48
сделаем что-нибудь другое, что мы собираемся сделать
01:13:49
вызвать установленное активное меню
01:13:52
но в данном случае мы хотим изменить
01:13:54
меню, используя предыдущее значение этого
01:13:56
меню
01:13:57
и вы можете сделать это, добавив обратный вызов
01:14:00
функционировать внутри вас тут же
01:14:02
могу получить предыдущую
01:14:04
активное меню, что означает предыдущее состояние
01:14:07
и затем вы можете использовать это предыдущее состояние
01:14:09
чтобы включить или выключить его, мы идем так
01:14:13
это значок отмены
01:14:15
и что у нас сейчас есть что-то вроде
01:14:17
этот когда вы нажимаете на нее, она исчезает
01:14:20
но в настоящее время у нас нет возможности
01:14:23
верните его, потому что наша панель навигации
01:14:25
содержит кнопку, которая должна быть там
01:14:28
вернуть его обратно, так что это определенно
01:14:30
что-то, что мы должны сделать
01:14:32
и это будет наш следующий шаг к
01:14:35
реализовать панель навигации
01:14:38
давай вернемся к нашему приложению, давай найдем
01:14:40
где мы используем панель навигации
01:14:42
и давайте удержим Ctrl и перейдем к нему
01:14:46
наконец, давайте начнем с реализации
01:14:48
панель навигации
01:14:49
нашу панель навигации будет немного сложнее использовать
01:14:52
развиваться, и это займет некоторое время, но
01:14:54
поверь мне, когда я говорю это
01:14:56
как только мы закончим с панелью навигации и
01:14:58
боковая панель, которую мы можем просто просмотреть
01:15:01
все остальное будет потрясающе
01:15:03
и вы просто начнете видеть все
01:15:05
функционал появляется сразу
01:15:07
обычно навигационная панель и боковая панель этого не делают
01:15:10
кажутся такими хитрыми, что они почти не такие
01:15:13
существует прямо здесь, но есть некоторые
01:15:15
функциональность, пытаюсь выяснить, это она
01:15:17
в данный момент открыт или нет и один раз
01:15:20
мы это выяснили, тогда мы будем
01:15:22
способен очень быстро все закодировать
01:15:25
Итак, начнем с панели навигации
01:15:27
прямо здесь мы можем импортировать эффект использования
01:15:30
крючок, и нам также понадобится много разных
01:15:34
значки
01:15:35
так что давайте импортируем ИИ
01:15:38
контур
01:15:39
меню
01:15:40
и это будет происходить из значков реагирования
01:15:44
косая черта ИИ
01:15:46
нам также нужно будет импортировать файл Fi
01:15:50
Покупка
01:15:51
тележка
01:15:52
и это будет исходить от реакции
01:15:54
значки тире, косая черта, фи
01:15:58
тогда нам нужно будет импортировать bs
01:16:01
Чат ушел, и это исходит от реакции
01:16:05
значки косая черта bs нам тоже понадобятся
01:16:09
импортировать ри
01:16:11
уведомление
01:16:14
три
01:16:15
линия
01:16:16
из значков реакции тире, косая черта ri
01:16:20
конечно, нам нужно исправить орфографию
01:16:22
вот здесь и исправь этот импорт правильно
01:16:24
вот это просто значки реакции вперед
01:16:27
слэш фи
01:16:29
осталось еще немного, нам нужно
01:16:32
импортировать стрелку клавиатуры md
01:16:36
и это происходит из значков реагирования
01:16:39
косая черта, мд
01:16:42
отлично, у нас есть все значки, которые мы
01:16:44
нужно, но нам также нужна эта подсказка, поэтому
01:16:47
мы можем импортировать компонент всплывающей подсказки из
01:16:50
добавить синхронизацию
01:16:53
косая черта ej2
01:16:56
реагировать на такие всплывающие окна
01:16:59
мы также будем использовать некоторые фиктивные данные, поэтому
01:17:01
мы можем импортировать изображение аватара
01:17:03
приходящий из
01:17:05
точечный слэш
01:17:06
данные косая черта аватар точка jpeg
01:17:10
этот
01:17:11
и, наконец, нам также нужно импортировать несколько
01:17:14
компоненты корзины и чата
01:17:18
уведомление
01:17:21
и, наконец, профиль пользователя
01:17:25
и они исходят от просто точка мы
01:17:29
мы уже там, мы внутри
01:17:31
компоненты
01:17:32
наконец, мы собираемся импортировать использование
01:17:35
контекст состояния из контекстов косой черты
01:17:39
поставщик контекста прямой косой черты
01:17:42
теперь у нас есть все, что нам нужно
01:17:45
Итак, чтобы начать кодировать нашу навигационную панель, мы можем
01:17:48
немедленно получить это активное состояние меню
01:17:51
поэтому мы можем сказать константа
01:17:54
активное меню
01:17:55
вот так, а также установленное активное меню
01:17:59
исходит из или, скорее, равен
01:18:03
использовать контекст состояния, а затем мы называем его как
01:18:06
крючок
01:18:07
теперь ниже мы можем начать
01:18:10
реализация нашей навигационной панели, так что давайте начнем
01:18:13
с именами классов для div
01:18:15
имя класса будет равно flex
01:18:18
оправдать перечеркивание между
01:18:21
дополнение-2 или просто b-2 на средних устройствах
01:18:25
маржа x будет установлена ​​на 6.
01:18:29
поле x просто означает поле слева и
01:18:32
правильно все по оси x
01:18:35
и, наконец, позиция будет такой:
01:18:37
установлено относительное, теперь вы можете видеть это
01:18:39
все нахлынуло, но это
01:18:42
будет исправлено очень скоро, как только мы
01:18:44
на самом деле реализовать панель навигации
01:18:47
внутри нашей навигационной панели мы собираемся
01:18:49
иметь много разных панелей навигации
01:18:51
кнопки, давайте создадим новый компонент
01:18:54
чтобы облегчить ей жизнь
01:18:56
постоянная кнопка навигации, наша кнопка навигации работает
01:19:00
быть нормальной функцией реагирующей стрелки
01:19:03
компонент с мгновенным возвратом идет
01:19:06
принять несколько объектов недвижимости, которые собираются
01:19:08
быть титулом
01:19:10
пользовательская функция, которую мы хотим вызвать
01:19:13
Иконка
01:19:15
цвет
01:19:16
и цвет точки
01:19:18
достаточно скоро ты увидишь, что все это
01:19:20
свойства делают
01:19:22
так что же это за кнопка навигации?
01:19:25
по сути это кнопка, завернутая в
01:19:28
компонент всплывающей подсказки
01:19:30
наш компонент всплывающей подсказки будет иметь
01:19:32
содержание равно заголовку
01:19:35
и позиция будет установлена ​​на
01:19:38
нижний
01:19:40
центр
01:19:41
внутри мы наконец можем отрендерить
01:19:44
наша кнопка сейчас, это может быть хорошей идеей
01:19:46
уже вызвать одну из этих кнопок
01:19:48
ниже, чтобы вы могли видеть, что
01:19:50
происходит на экране, так что давай позвоним
01:19:52
наша первая кнопка навигации
01:19:55
Прямо здесь
01:19:56
как самозакрывающийся компонент мы можем передать
01:19:59
несколько реквизитов к этому
01:20:01
заголовок будет установлен в меню
01:20:04
и эту пользовательскую функцию, которую мы можем передать ей
01:20:08
это будет функция обратного вызова
01:20:10
где мы просто вызываем установленное активное меню
01:20:13
так
01:20:14
снова у нас есть функция обратного вызова внутри
01:20:17
из этого, где мы получаем предыдущий активный
01:20:19
состояние меню такое предыдущее
01:20:22
активный
01:20:23
меню, а затем просто переключаем его, поэтому, если
01:20:26
оно было открыто, тогда мы закроем его
01:20:29
и наоборот здорово, так что теперь у нас есть
01:20:32
заголовок и пользовательская функция, которую мы
01:20:34
тоже будет цвет
01:20:36
и этот цвет — тот же цвет, что и
01:20:39
тема, которую мы меняем, запомни этот синий цвет
01:20:41
справа внизу ну давайте тоже установим
01:20:44
это синее, но позже мы собираемся
01:20:46
наконец-то придать этой динамике нам нужно
01:20:48
передать значок
01:20:50
и значок в этом случае будет
01:20:53
компонент
01:20:54
контурное меню ИИ
01:20:57
вот и все, теперь у нас есть все, что мы
01:21:00
нужно создать нашу первую кнопку навигации
01:21:02
давайте продолжим и действительно воспользуемся этим
01:21:04
данные внутри нашего компонента кнопки навигации
01:21:08
наша кнопка будет иметь тип
01:21:11
равно кнопке
01:21:12
вот так и что это за кнопка
01:21:15
делать
01:21:16
ну, при нажатии он вызовет это
01:21:19
пользовательская функция, подобная этой, причина, почему
01:21:22
мы не могли правильно принять этот код
01:21:24
вот и скажи прямо вот это
01:21:26
потому что другие кнопки навигации не будут выполнять эту функцию
01:21:29
то же действие, что и здесь, поэтому они
01:21:31
всегда будем вызывать действие, которое мы
01:21:33
предоставьте ему это, что позволит нам
01:21:36
для расширения функциональных возможностей
01:21:39
тогда мы также придадим ему стиль
01:21:41
и стиль будет равен
01:21:43
цвет
01:21:45
и мы также можем дать ему несколько имен классов
01:21:47
поэтому мы можем сказать имя класса
01:21:50
равно
01:21:51
родственник
01:21:53
текстовое тире xl
01:21:55
округлое тире полное
01:21:57
п 3 для набивки
01:21:59
при наведении BG Dash Light Dash отлично
01:22:04
и что будет отображать кнопка
01:22:07
это будет элемент span с
01:22:10
стиль, равный фону
01:22:13
какой цвет точки
01:22:16
так
01:22:18
и у него также будет имя класса
01:22:21
имя класса будет равно
01:22:24
Абсолютная гибкость встроенной приборной панели
01:22:27
округлое тире полное
01:22:29
ч-2
01:22:31
ш-2
01:22:33
правый-2 и верхний-2
01:22:36
наконец, внутри него мы можем отобразить наш
01:22:40
икона
01:22:41
вот и все
01:22:42
так что теперь, если мы сохраним это, ты должен быть
01:22:44
могу увидеть этот маленький значок прямо здесь
01:22:48
если уменьшить масштаб, то его едва можно увидеть
01:22:51
но как только вы нажмете на него, посмотрите
01:22:53
что мы на самом деле открываемся и закрываемся
01:22:56
наша боковая панель
01:22:58
это выглядит великолепно, конечно, мы просто
01:23:01
нужно сделать этот значок немного больше и
01:23:04
когда я говорю «немного», я имею в виду довольно много
01:23:07
прежде чем мы это сделаем, позвольте мне показать вам
01:23:10
как легко будет добавить все это
01:23:12
другие значки тоже
01:23:15
что мы можем сделать, это прокрутить вниз
01:23:17
создайте div прямо здесь
01:23:20
этот div будет содержать все
01:23:22
другие значки навигации — единственное, что это
01:23:25
будет иметь имя класса, равное
01:23:28
гибкий
01:23:29
теперь давайте скопируем нашу оригинальную кнопку навигации
01:23:33
давай просто разложим весь реквизит, чтобы мы
01:23:36
мне легче увидеть, что происходит
01:23:38
вот и все
01:23:40
цвет синий, и значок находится прямо здесь, как
01:23:43
ну вот и пошло, так что это один из наших
01:23:46
кнопки навигации
01:23:48
теперь это для меню или хотя бы
01:23:51
это было, но теперь мы можем это изменить
01:23:54
к чему-то другому
01:23:56
давай сделаем тележку
01:23:58
и пользовательская функция будет
01:24:00
вызов новой функции, которой у нас нет
01:24:02
пока созданный дескриптор нажмите и мы собираемся
01:24:05
проходить
01:24:06
корзина как параметр
01:24:09
затем мы собираемся установить цвет
01:24:11
снова синий, и, наконец, мы собираемся
01:24:14
дайте ему другой значок
01:24:16
фи
01:24:17
корзина
01:24:19
вот и все, теперь вы можете увидеть это на
01:24:21
правый верхний угол экрана, если увеличить масштаб
01:24:23
достаточно много
01:24:25
пока мы здесь, давайте также добавим все
01:24:27
другие значки, дублируя этот
01:24:30
заголовок будет в чате
01:24:32
этот тоже может иметь такой же цвет точек, так что
01:24:35
скажем, цвет точки
01:24:38
это будет шестнадцатеричное число 0 3
01:24:41
с9 d7
01:24:44
вот и все
01:24:45
вы можете видеть, что у нас есть точка
01:24:47
уведомления и что мы можем сделать, это
01:24:49
поменяй значки на bs
01:24:52
чат ушел
01:24:54
и как вы можете видеть, теперь у нас есть этот чат
01:24:57
прямо здесь и, конечно, функция
01:24:59
будет щелчок по ручке, и все пойдет
01:25:01
чтобы открыть чат
01:25:03
сейчас это ничего не дает, но
01:25:05
это скоро будет
01:25:07
и последний будет для нашего
01:25:10
уведомления и наш профиль, чтобы вы
01:25:12
можете видеть прямо здесь, у нас есть чат с корзиной
01:25:15
уведомление и профиль, что мы можем сделать
01:25:18
это, скажем, уведомления прямо здесь, вот это
01:25:21
собираюсь указать на обработку щелчка, и это
01:25:25
собираюсь открыть уведомление
01:25:27
единственное число
01:25:30
и значок будет ри
01:25:33
уведомление, 3 строка, вот и все
01:25:37
наконец, нам нужен последний для
01:25:40
профиль и профиль будет просто
01:25:42
немного другое, как видите, это не так
01:25:45
на самом деле просто один значок
01:25:47
и что мы можем сделать, это создать всплывающую подсказку
01:25:50
компонент
01:25:51
эта всплывающая подсказка будет иметь контент
01:25:55
равен профилю
01:25:57
так
01:25:59
и позиция будет установлена ​​на
01:26:01
нижний
01:26:03
в центре всплывающей подсказки, куда мы собираемся
01:26:05
иметь div
01:26:07
итак, давайте создадим div
01:26:10
и в этом div будет несколько
01:26:12
имена классов
01:26:13
Итак, давайте добавим имя класса
01:26:16
равно гибкому
01:26:18
центр предметов
01:26:20
разрыв-2
01:26:22
указатель курсора
01:26:24
p-1 для заполнения
01:26:27
при наведении bg тире светлый тире серый
01:26:30
и закругленная черточка LG
01:26:34
как только мы нажмем на этот div, мы хотим
01:26:36
откройте профиль, чтобы мы могли сказать по клику
01:26:39
функция обратного вызова
01:26:41
где мы
01:26:42
ручка
01:26:43
щелкнуть
01:26:44
и мы собираемся передать пользователя
01:26:47
профиль как строка
01:26:49
теперь ты видишь, что еще ничего не произошло, но
01:26:52
внутри этого div мы находимся
01:26:54
собираюсь добавить изображение
01:26:56
у этого изображения будет источник
01:26:59
равно аватару, и вот мы и начнем
01:27:02
появился аватар, можно дать ему класс
01:27:05
имя равно округленному тире, полному, чтобы получилось
01:27:08
это в круг так же, как и w-8
01:27:12
и h-8, чтобы сделать его немного меньше
01:27:16
вот и все
01:27:17
наконец, под этим изображением мы можем создать
01:27:20
тег б
01:27:21
и этот тег b будет иметь два
01:27:24
различные элементы пролета
01:27:26
первый поздоровается
01:27:29
и запятая
01:27:31
после этого промежутка мы можем создать просто
01:27:34
такое пространство
01:27:36
и у нас будет еще один пролет
01:27:38
под этим
01:27:39
пролет прямо здесь, вот что будет сказано
01:27:42
Майкл
01:27:44
конечно, мы можем применить некоторые свойства
01:27:46
у первого будет урок
01:27:49
имя
01:27:50
равно
01:27:51
текстовое тире серое тире 400 и текстовое тире
01:27:55
14.
01:27:56
у нижнего будет класс
01:27:59
имя равно тексту тире серое тире 400
01:28:04
шрифт тире жирный
01:28:06
мл для поля слева равно 1 и
01:28:09
текстовое тире 14, итак, поехали, теперь ты
01:28:12
должна быть возможность увидеть привет, Майкл
01:28:15
наконец, нам нужна стрелка вниз, внизу
01:28:18
тег p мы можем визуализировать md
01:28:21
стрелка вниз
01:28:23
и мы также можем дать ему тот же класс
01:28:25
имя, которое мы дали привет
01:28:27
поэтому текст имени класса серый 400, а затем
01:28:30
также отправьте текст 14. как видите, это означает
01:28:34
что мы можем навести на него курсор и нажать
01:28:35
это сделать его открытым
01:28:37
и это все, что касается внешнего вида
01:28:40
нашей фактической панели навигации
01:28:42
это слишком мало, но мы собираемся
01:28:44
исправь это очень скоро, то, что мы
01:28:47
также нужно выяснить, как мы можем
01:28:49
получить наш контекст нет, когда мы нажали
01:28:52
один из этих конкретных значков, который нам нужен
01:28:55
переместите это значение в контекст, чтобы
01:28:57
контекст знает, как открыть корзину
01:29:00
уведомления чата или профиля
01:29:03
для этого мы можем вернуться внутрь нашего
01:29:06
поставщик контактов
01:29:08
и мы можем создать новое поле состояния использования
01:29:12
поэтому мы можем сказать: используйте фрагмент состояния
01:29:14
назовем его нажатым
01:29:17
set нажимается, и исходное состояние
01:29:21
будет значение нашего начального
01:29:24
объект состояния, по которому ничего не нажимали
01:29:27
начало
01:29:28
теперь мы можем передать эти два значения
01:29:31
нажали и установили, нажимают рядом с нашим
01:29:34
ценности прямо здесь, это означает, что мы
01:29:36
собираюсь получить к ним доступ внутри
01:29:39
наша панель навигации
01:29:40
так что теперь, если мы вернемся к нашей навигационной панели
01:29:43
вверху мы можем получить эти значения правильно
01:29:45
здесь
01:29:46
нажимается
01:29:48
а также установлен
01:29:50
нажал вот и пошло
01:29:53
как только это будет внизу, мы сможем
01:29:56
визуализировать разные элементы
01:29:58
чуть ниже компонента всплывающей подсказки
01:30:00
поэтому мы можем сказать, если
01:30:02
нажимается
01:30:04
точечная тележка и конец
01:30:07
затем мы хотим отобразить карту
01:30:09
компонент
01:30:10
мы можем повторить это четыре раза
01:30:12
если мы нажмем на чат
01:30:14
затем мы хотим отобразить чат
01:30:16
компонент
01:30:17
если мы нажмем на уведомление, то
01:30:20
мы хотим показать уведомление
01:30:22
компонент и, наконец, если мы нажмем
01:30:25
профиль пользователя, который мы хотим показать
01:30:27
компонент профиля пользователя
01:30:30
вот и все
01:30:31
так что вначале там ничего не должно быть
01:30:33
потому что все выключено
01:30:35
но теперь давайте реализуем
01:30:37
логика, чтобы включить его
01:30:39
для этого мы можем вернуться в наш контекст
01:30:42
поставщик
01:30:43
и мы можем создать одно важное свойство
01:30:46
об этой функции управления щелчком мы говорили
01:30:49
о
01:30:50
поэтому наш щелчок по дескриптору будет выглядеть
01:30:52
что-то вроде этого
01:30:53
константный дескриптор, нажмите здесь
01:30:56
в качестве первого и единственного параметра мы
01:30:58
собираюсь получить информацию о том, какой
01:31:00
элемент был нажат, поэтому мы можем сказать
01:31:03
щелкнул, а затем мы можем сделать это
01:31:06
просто вызвать набор нажимается
01:31:10
быть равным
01:31:11
щелкнул
01:31:12
вот так, но если подумать, то
01:31:15
действительно не сработает
01:31:17
потому что set нажимается или, скорее, есть
01:31:19
Свойство clicked является объектом, поэтому мы
01:31:22
не может просто переопределить объект с помощью
01:31:25
строка, что нам нужно сделать, это открыть
01:31:28
объект
01:31:29
выкладываю исходное состояние
01:31:31
то есть там, где все ложно
01:31:34
а затем внутри квадратных скобок
01:31:37
измените только значение, которое было
01:31:39
щелкнул и установил значение true
01:31:42
вот как работает щелчок ручки и
01:31:44
теперь мы можем передать его как значение через
01:31:47
наш государственный контекст
01:31:49
вернувшись в нашу навигационную панель, мы теперь можем получить
01:31:51
это значение из контекста
01:31:54
ручка
01:31:56
щелкнуть вот и все
01:31:58
так что теперь, если мы нажмем прямо здесь
01:32:00
ты можешь видеть
01:32:02
корзина появилась вверху
01:32:04
тележка
01:32:05
и если мы нажмем на чат
01:32:07
появился чат
01:32:08
то же самое для профиля уведомлений и
01:32:11
все остальное
01:32:12
это означает, что наша логика работает, но
01:32:15
конечно, нам придется стилизовать
01:32:17
корзина и профиль чата уведомлений
01:32:20
компоненты, которые будут красиво отображаться вот так
01:32:24
а не просто текст, появляющийся на
01:32:26
справа на странице профиля
01:32:29
большой
01:32:30
так что теперь большая часть логики выполнена, но
01:32:33
есть лишь несколько мелких деталей, которые
01:32:35
мы должны справиться, и один из них
01:32:38
помните, что изначально мы всегда открываем
01:32:41
боковая панель по умолчанию
01:32:43
но если мы на мобильном телефоне, мы не хотим
01:32:46
открыть его, потому что это займет
01:32:48
почти весь экран взгляни на
01:32:51
это и теперь ты даже закрыть его не можешь
01:32:53
поэтому нам придется выяснить, что такое
01:32:55
ширину экрана, а затем, если
01:32:58
ширина очень маленькая, тогда не откроем
01:33:01
боковая панель вообще, так что это будет
01:33:04
будь нашим следующим шагом
01:33:06
мы можем вернуться к нашему провайдеру контекста
01:33:09
а затем создать другое государство
01:33:11
использовать фрагмент состояния
01:33:14
это будет
01:33:15
размер экрана и установите размер экрана в
01:33:19
начнем с того, что оно будет неопределенным, потому что
01:33:22
мы не знаем, какой у нас размер экрана
01:33:24
сначала надо это выяснить
01:33:26
как только вы определитесь с размером экрана и настроите его
01:33:29
размер экрана, мы можем передать его нашему
01:33:32
поставщик контекста состояния
01:33:34
теперь, вернувшись к нашей навигационной панели, мы можем
01:33:37
на самом деле использовать эти значения
01:33:39
итак, давайте прямо здесь узнаем размер экрана
01:33:42
и установите размер экрана
01:33:44
и мы можем назвать наш первый эффект использования так
01:33:48
просто введите эффект использования, он принимает
01:33:51
функция обратного вызова, а затем вторая
01:33:53
параметр представляет собой массив зависимостей, означающий
01:33:57
когда это будет называться
01:34:00
например, если вы ничего сюда не поместите, это
01:34:02
будет вызван только в начале
01:34:04
и если вы укажете здесь размер экрана, это
01:34:07
будет холодно каждый раз, когда этот экран
01:34:09
изменения размера
01:34:10
это было бы очень тяжело для нашего
01:34:12
приложение, и мы не хотим этого делать
01:34:14
мы просто хотим выяснить размер
01:34:16
изначально при загрузке окна
01:34:18
поэтому для этого мы можем создать новый
01:34:20
функция внутри эффекта использования
01:34:22
называется изменением размера дескриптора
01:34:25
это будет стрелочная функция
01:34:27
где мы просто устанавливаем размер экрана на
01:34:30
быть равным внутренней ширине точки окна
01:34:35
затем мы добавим точку в окне
01:34:38
добавьте прослушиватель событий в наше окно и
01:34:42
мы собираемся отслеживать все изменения размера
01:34:44
параметры
01:34:45
если размер изменится, мы вспомним
01:34:48
функция изменения размера ручки, поэтому каждый раз
01:34:51
мы изменяем его размер, мы собираемся установить
01:34:53
размер экрана до этого конкретного размера
01:34:56
и мы также хотим вызвать дескриптор
01:34:59
первоначально изменить размер самостоятельно, чтобы
01:35:02
выяснить начальную ширину в реакции
01:35:04
всякий раз, когда вы используете что-то вроде этого
01:35:06
окно.addeventlistener
01:35:08
вы также хотите удалить это событие
01:35:10
слушатель, так что ты можешь сказать
01:35:13
возвращаться
01:35:14
функция обратного вызова
01:35:16
window dot удалить прослушиватель событий и
01:35:19
затем вы предоставляете изменение размера строки и
01:35:22
обработать функцию изменения размера, теперь мы
01:35:25
отслеживание ширины нашего
01:35:27
браузера или нашего устройства, но
01:35:30
вопрос в том, что нам с этим делать
01:35:32
информация, ну, это сыграет
01:35:34
важную роль внутри нашей боковой панели, но
01:35:37
это также служит небольшой цели, верно
01:35:40
здесь, внутри навигационной панели
01:35:42
давайте создадим второй эффект использования
01:35:45
и вы можете иметь столько эффектов использования, сколько
01:35:48
вы хотите
01:35:49
единственная разница в том, что теперь мы
01:35:52
на самом деле собираюсь следить за некоторыми
01:35:53
изменения
01:35:54
точнее, мы собираемся отслеживать
01:35:56
изменение размера экрана вот так
01:36:00
поэтому всякий раз, когда размер экрана меняется
01:36:02
если размер экрана меньше или равен
01:36:06
900
01:36:08
затем установите активное меню
01:36:10
так
01:36:11
установить значение false
01:36:14
а иначе, если он больше или шире, чем
01:36:17
900 установить активное меню в значение true
01:36:21
как вы можете видеть, поскольку мы были на
01:36:23
такое маленькое устройство, и если мы перезагрузим
01:36:26
это немедленно скроет
01:36:28
боковая панель, чтобы мы могли лучше видеть, что происходит
01:36:31
экран
01:36:32
мы просто готовим все для
01:36:34
отличный контент, который у нас будет
01:36:36
очень скоро отлично, так что теперь мы
01:36:39
успешно отслеживая размер наших
01:36:41
экран и, как я уже сказал, это будет
01:36:44
действительно полезно внутри нашей боковой панели
01:36:46
компонент, так что давайте перейдем к нему
01:36:50
если мы откроем наш компонент боковой панели, мы
01:36:52
теперь можно правильно использовать это значение размера экрана
01:36:56
здесь
01:36:57
так что это будет экран
01:36:59
размер
01:37:00
и мы собираемся создать специальный
01:37:01
функция
01:37:02
константный дескриптор
01:37:04
ближняя сторона
01:37:06
бар
01:37:08
это функция ошибки
01:37:10
и он собирается проверить
01:37:12
если активное меню
01:37:14
правда
01:37:16
и размер экрана
01:37:18
меньше или равно 900
01:37:21
в этом случае он закроет
01:37:24
меню тоже
01:37:26
вот и мы можем это назвать
01:37:28
функция
01:37:29
прямо здесь, по клику
01:37:31
нашей ссылки, поэтому, нажав на нее, вы можете просто
01:37:34
дескриптор вызова закрыть боковую панель есть одна
01:37:39
хотя другое место, где мы это называем
01:37:41
это будет происходить всякий раз, когда мы нажмем на
01:37:43
конкретная ссылка
01:37:45
итак, у нас есть навигационная ссылка прямо здесь и далее
01:37:48
щелкнуть
01:37:49
видишь, нам нужно что-то сделать хорошо, что у нас есть
01:37:52
закрыть эту боковую панель, потому что ты знаешь
01:37:55
что происходит на мобильных устройствах
01:37:57
давайте перейдем к ширине мобильного устройства
01:37:59
открой это
01:38:01
и обычно оно охватывает почти всю
01:38:03
экран, чтобы вы не могли видеть, что происходит
01:38:04
происходит
01:38:05
и теперь если вы нажмете заказы
01:38:08
представьте, если бы боковая панель осталась
01:38:10
прямо здесь, если его не удалили, то ты
01:38:13
придется закрывать его вручную каждый раз
01:38:15
время, когда ты что-то выбираешь
01:38:17
но что мы делаем прямо здесь, так это то, что мы
01:38:19
проверка, используете ли вы мобильное устройство
01:38:22
и если да, то когда вы нажимаете, оно происходит
01:38:24
чтобы автоматически закрыть
01:38:26
но если вы не на мобильном устройстве и
01:38:29
если вы нажмете, он останется открытым
01:38:32
так что, как вы можете видеть, их больше, чем
01:38:34
кажется на первый взгляд, мы действительно создаем
01:38:37
лучшее приложение для приборной панели, и я
01:38:41
научит вас всем этим советам и
01:38:42
трюки, которые вы обычно не увидите в
01:38:44
просто базовые уроки, это что-то
01:38:46
что вы делаете в реальных приложениях, чтобы сделать
01:38:49
уверен, что клиент доволен
01:38:52
отлично с этим сказано, мы сейчас делаем
01:38:55
очень хорошо с нашей боковой панелью и
01:38:57
Панель навигации
01:38:59
но, как вы знаете, если мы уменьшим масштаб,
01:39:01
во всю ширину вы можете видеть, что наши значки
01:39:04
действительно очень маленькие, так что давайте разберемся
01:39:06
проблема в том, что значки
01:39:09
более конкретно внутри нашей навигационной панели
01:39:13
внутри кнопки навигации, потому что мы знаем
01:39:16
неправильный стиль влияет на всех
01:39:18
из них одновременно, так и должно быть
01:39:21
что-то здесь
01:39:23
прямо вокруг значка
01:39:25
и я сразу это заметил
01:39:27
вот эта сковорода должна была быть здесь
01:39:29
только эта точка
01:39:31
но не предполагалось обертывать иконку
01:39:33
так что давайте просто закроем диапазон
01:39:36
элемент
01:39:37
а затем поместите значок прямо под ним
01:39:40
так и должно было быть
01:39:43
вот и значки теперь
01:39:44
сразу больше, потому что у нас есть
01:39:47
напиши xl прямо здесь, на кнопке
01:39:50
это выглядит
01:39:52
отлично, теперь, когда это сделано, мы готовы
01:39:56
чтобы начать создавать нашу первую страницу
01:39:58
день
01:39:59
страница электронной коммерции
01:40:01
это будет выглядеть примерно так
01:40:03
как только это будет сделано
01:40:05
это действительно разнообразная страница со множеством
01:40:08
разных карточек, чтобы по-настоящему показать вам
01:40:10
что мы можем сделать
01:40:11
конечно, это не обязательно должно быть просто
01:40:13
данные электронной коммерции
01:40:14
вместо заработка вы могли бы иметь
01:40:16
общее количество пользователей, использующих ваш
01:40:18
Платформа
01:40:19
здесь мы можем разместить любые виды
01:40:21
разные показатели
01:40:22
и любые другие диаграммы, но
01:40:24
это должно дать вам очень быстрое
01:40:26
обзор того, как syncfusion может вам помочь
01:40:29
писать код быстрее, но, конечно, как только мы
01:40:32
закончили с этой страницей, тогда мы собираемся
01:40:34
погрузитесь еще глубже в то, что такое синхронизация
01:40:37
предложения, я говорю обо всем этом
01:40:39
таблицы на разных страницах, диаграммы и
01:40:42
Приложения
01:40:44
отлично, итак, давайте начнем
01:40:46
кодируя наше основное представление электронной коммерции, мы
01:40:49
можем начать с закрытия всех наших
01:40:52
в данный момент открыты файлы и осталось только
01:40:54
приложение
01:40:56
внутри приложения мы можем контролировать клик
01:40:58
в электронную коммерцию и это, конечно,
01:41:01
где мы начнем реализовывать эту страницу
01:41:04
мы также можем импортировать реакцию из реакции
01:41:08
как импорт BS
01:41:10
валюта
01:41:11
доллар
01:41:12
и это исходит от
01:41:14
Реакция значков тире косая черта bs
01:41:18
мы также собираемся импортировать go
01:41:22
примитивный
01:41:23
точка, и это происходит из значков реакции
01:41:27
косая черта, иди, нам также нужно импортировать
01:41:30
некоторые из наших компонентов, например, сложенные
01:41:33
что это за диаграмма
01:41:34
круговая диаграмма, а также
01:41:36
кнопка и, наконец, спарк-линейная диаграмма
01:41:40
также исходит из компонентов точечной косой черты
01:41:45
наконец, нам нужно импортировать какой-нибудь манекен
01:41:47
данные, чтобы мы могли сказать импорт
01:41:50
данные о доходах, то нам нужно импортировать
01:41:53
искра
01:41:55
линия
01:41:56
данные о районе
01:41:58
и, наконец, эком
01:42:00
Пи
01:42:02
диаграмма данные
01:42:03
теперь у нас есть все, что нам нужно, это
01:42:06
исходящие из точечной косой черты, данные, косая черта
01:42:10
чувак, вот и пошло
01:42:12
и, наконец, нам нужно импортировать
01:42:13
контекст, сказав состояние использования импорта
01:42:16
контекст из контекстов данных, косая черта
01:42:20
поставщик контекста
01:42:23
теперь у нас есть все, что нам нужно, так что давай
01:42:26
начните с реализации этого прекрасного
01:42:29
посмотрите прямо здесь, еще раз здесь нет
01:42:31
это просто электронная коммерция, это классика
01:42:34
вид панели управления с некоторыми карточками
01:42:36
информация и показатели
01:42:39
большой
01:42:40
Итак, для начала мы можем использовать div
01:42:43
и у этого div будет класс
01:42:46
имя, равное mt-12, чтобы немного разделить его
01:42:49
из панели навигации
01:42:51
тогда у нас будет div, который
01:42:53
имя класса будет равно flex
01:42:59
гибкая обертка приборной панели, а на больших устройствах гибкая
01:43:02
тире без обертки
01:43:04
а также выровнять центр тире внутри
01:43:07
там мы можем создать еще один div и
01:43:10
мы только начинаем создавать макет
01:43:12
поэтому обычно, когда вы просто создаете
01:43:13
макет, в следующем у вас будет много разделов
01:43:16
div будет иметь имя класса, равное
01:43:19
на заднем плане Дэш Уайт
01:43:22
в темном режиме текстовое тире серое тире 200
01:43:26
в темном режиме bg тире вторичное тире темное
01:43:30
тире фон
01:43:32
высота черточки 44
01:43:34
закругленная черта xl
01:43:37
с чертой полной
01:43:39
на больших устройствах w-80
01:43:42
р-8
01:43:44
ПТ-9
01:43:46
маржа или м-3
01:43:49
bg-герой
01:43:50
штриховой узор
01:43:52
а также bg тире без тире, повтор
01:43:56
крышка приборной панели bg и центр приборной панели bg
01:44:00
теперь, если мы сохраним это
01:44:02
вы можете видеть, что у нас есть это изображение, но
01:44:04
его едва видно с правой стороны
01:44:07
поэтому я думаю, что у нас проблема с
01:44:09
макет
01:44:10
похоже, что наш фактический контент не
01:44:13
появляется ниже
01:44:15
наша навигационная панель и боковая панель — это
01:44:17
появляясь в стороне
01:44:19
так что эта проблема, скорее всего, будет
01:44:22
внутри app.js
01:44:25
мне кажется это похоже
01:44:26
у нас есть панель навигации прямо здесь, но мы
01:44:29
закрыл его слишком рано, поэтому этот div должен
01:44:32
фактически закроется после всех
01:44:35
маршруты, так что просто скопируйте их и поехали
01:44:38
под div, содержащим все маршруты
01:44:40
и давайте добавим еще один div прямо здесь
01:44:44
так что теперь, если ты сохранишь это
01:44:46
вот и все, теперь мы можем увидеть это великолепно
01:44:48
глядя на баннер, и мы видим, что наш
01:44:51
контент фактически появляется под
01:44:54
панель навигации как надо
01:44:56
Итак, возвращаясь к нашей электронной коммерции, мы
01:44:59
можно продолжить реализацию макета
01:45:01
у нас будет еще один div
01:45:03
и у этого div будет класс
01:45:06
имя, равное flex
01:45:08
оправдать перечеркивание между
01:45:11
и пункты в центре тире
01:45:13
поверь мне, есть еще один div
01:45:15
прямо здесь, и у этого ничего не будет
01:45:19
стили
01:45:20
внутри там, скорее, мы собираемся
01:45:22
показать два разных тега p
01:45:24
первый скажет "заработок"
01:45:27
вот и мы видим прибыль, верно
01:45:29
вот и другой собирается
01:45:31
уточни, какой заработок, так что давай
01:45:33
просто скопируйте этот номер прямо сюда
01:45:36
и я собираюсь создать еще один тег p
01:45:39
и вставьте его, конечно, не стесняйтесь использовать
01:45:41
любое число прямо здесь, я добавлю
01:45:44
имя класса
01:45:45
который будет выделен жирным шрифтом, как
01:45:48
ну и текстовое тире серое тире 400 там мы
01:45:52
иди и за нижний скажем
01:45:54
имя класса равно текстовому тире 2 xl
01:45:59
сделай его немного больше
01:46:01
сейчас это выглядит хорошо под этим div
01:46:04
и к этому div мы можем добавить еще один
01:46:07
div, у этого div будет класс
01:46:10
имя, равное
01:46:12
МТ-6
01:46:13
и у нас там будет кнопка
01:46:16
но это не обычная кнопка
01:46:18
наш собственный компонент кнопки
01:46:21
так
01:46:22
конечно, мы должны сначала предоставить некоторые
01:46:23
реквизит для этого, как будто цвет будет
01:46:26
белый
01:46:27
Цвет фона будет динамичным
01:46:30
цвет, который мы выбираем, но сейчас мы
01:46:32
просто собираюсь установить синий цвет
01:46:35
текст будет говорить что-то вроде
01:46:37
загрузите и, наконец, радиус границы равен
01:46:40
будет установлено что-то вроде 10
01:46:42
пиксели
01:46:43
теперь мы можем контролировать клик, чтобы войти внутрь
01:46:46
этот компонент, разве не удобно, что мы
01:46:48
заранее создал все компоненты
01:46:51
поэтому реализовать эту кнопку мы можем
01:46:53
конечно, примем все наши реквизиты
01:46:55
переходя в него, например, цвет фона
01:46:59
цвет
01:47:00
размер
01:47:01
текст
01:47:03
радиус границы
01:47:05
и на этом пока всё
01:47:07
эта кнопка будет просто
01:47:09
обычная простая кнопка
01:47:12
поэтому мы можем присвоить ему тип прямо здесь
01:47:15
и тип будет равен
01:47:17
кнопка
01:47:19
мы также можем придать ему какой-нибудь стиль
01:47:21
нравиться
01:47:22
фоновый цвет
01:47:25
равен цвету фона, подобному этому, а также
01:47:29
цвет равен цвету, конечно, мы можем
01:47:32
просто опусти это
01:47:33
и наконец, радиус границы
01:47:36
вот и все
01:47:37
мы также можем применить какое-либо имя класса
01:47:40
что-то вроде класса
01:47:42
имя равно мы собираемся это сделать
01:47:45
в строку шаблона
01:47:47
текстовое тире, а затем мы хотим отобразить
01:47:50
размер, который мы передали в эту кнопку, так что правильно
01:47:53
здесь мы не прошли ни одного размера
01:47:56
поэтому мы можем сказать что-то вроде
01:47:58
размер равен md
01:48:01
как средний
01:48:02
поэтому размер тире текста p
01:48:05
3 при наведении будет тень
01:48:09
даш Excel, вот и все
01:48:12
нам нужно сейчас и внутри там мы
01:48:14
можем отрендерить наш текст
01:48:17
вот и синяя кнопка загрузки
01:48:20
конечно, это действительно темно-синий, да
01:48:22
сейчас, но как только мы реализуем тематизацию
01:48:24
мы сможем изменить это по мере продвижения
01:48:26
используя значок настроек внизу
01:48:28
верно
01:48:29
теперь мы можем пойти ниже этого div прямо здесь
01:48:32
и ниже еще одного div
01:48:34
там мы можем создать один новый div и это
01:48:37
div будет представлять наши карты
01:48:40
и вот эти карточки прямо здесь, название класса
01:48:43
будет установлен на гибкий м-3
01:48:47
гибкая упаковка
01:48:50
оправдывать-центр
01:48:51
разрыв-1
01:48:53
и пункты-центр
01:48:55
то нам нужно открыть динамический блок
01:48:57
код, и внутри него мы можем просмотреть
01:49:00
данные о заработке
01:49:03
точечная карта
01:49:05
мы собираемся получить каждый отдельный предмет
01:49:08
и мы можем мгновенно что-то вернуть
01:49:11
для каждой карты мы собираемся вернуть
01:49:13
div
01:49:14
и у этого div будет ключ
01:49:17
равно названию элемента с точкой, а также
01:49:21
будет имя класса
01:49:23
это будет BG Dash White
01:49:26
в темном режиме будет текст
01:49:29
серый-200
01:49:32
в темном режиме фон будет установлен
01:49:35
вторичному
01:49:37
темный тире фон
01:49:39
на средних устройствах ширина будет равна
01:49:41
быть 56
01:49:43
отступ будет 4
01:49:45
верхний отступ будет равен 9 и закруглен
01:49:49
2xl
01:49:50
вот и все, чтобы вы могли увидеть этих четверых
01:49:52
маленькие карточки прямо здесь
01:49:54
теперь внутри этого div мы можем создать
01:49:57
кнопка
01:49:58
эта кнопка будет иметь тип
01:50:01
равно кнопке
01:50:03
у него также будет свойство стиля
01:50:06
поэтому стиль равен тому, где находится вызывающий абонент
01:50:09
будет равен значку точки элемента
01:50:12
цвет
01:50:13
а также цвет фона будет
01:50:17
равен элементу значок папы bg
01:50:21
вот и все
01:50:22
поэтому внутри мы можем визуализировать
01:50:25
Иконка с точкой, идем, не смотрим
01:50:29
плохо, но все же требует некоторого стиля, поэтому
01:50:32
давайте также добавим имя класса
01:50:35
равно текстовому тире 2xl
01:50:39
давайте изменим непрозрачность
01:50:41
до 0,9, чтобы сделать его немного меньше
01:50:44
видимый
01:50:45
мы можем сделать его закругленным, полным и
01:50:48
также дополняет тире 4.
01:50:50
это действительно сделает его популярным
01:50:53
давайте также при наведении
01:50:54
установите тень тире тире XL, так что теперь
01:50:58
если мы наведем на него курсор, то получим вот такой приятный результат
01:51:00
тень
01:51:02
пока выглядит отлично
01:51:04
под этой кнопкой мы можем отобразить букву p
01:51:06
ярлык
01:51:07
и у этого тега b будет класс
01:51:10
имя равно мт-3
01:51:14
там у нас будет элемент span
01:51:17
и этот диапазон будет иметь класс
01:51:19
имя, равное
01:51:21
текстовое тире LG
01:51:23
полужирный шрифт, и мы можем просто
01:51:26
скажите что-то вроде количества точек предмета
01:51:31
так что теперь он будет отображать конкретный
01:51:33
сумма прямо здесь
01:51:34
мы можем создать еще один пролет под ним
01:51:37
так охватываем элемент
01:51:39
и этот будет отображать элемент
01:51:42
процент точек
01:51:45
и опять же это все лишь демонстрационные данные
01:51:47
мы работаем над этим, поэтому эта сковорода тоже
01:51:50
будет имя класса, но оно
01:51:52
будет динамичным, у него будет
01:51:54
строка шаблона
01:51:55
текст см
01:51:57
а затем текстовое тире
01:52:00
предмет точка ПК
01:52:02
цвет, так что это цвет настоящего
01:52:04
элемент диапазона, а затем
01:52:06
мл-2 вот так
01:52:09
так что это должно фактически изменить все
01:52:11
окрашивает зеленый цвет, если он положительный, и красный цвет
01:52:15
если он отрицательный, но что происходит
01:52:17
я думаю, мы нашли ошибку в попутном ветре
01:52:20
это было бы огромно
01:52:22
так выглядит вот здесь
01:52:24
он должен получить цвет ПК, поэтому, если
01:52:27
мы нажимаем, и вы видите, что у нас красный цвет
01:52:29
600 и зеленый 600
01:52:31
прямо сейчас он просто читает красные
01:52:34
но если мы просто наберем его вручную, текст
01:52:37
зеленая черта 600
01:52:40
оно начинает работать, но теперь все они
01:52:43
такие, если мы переключимся на
01:52:45
текст-красный-600
01:52:47
это тоже работает, но теперь, если мы это сделаем
01:52:50
динамичный, такой
01:52:51
item.pc
01:52:53
цвет
01:52:54
теперь это действительно работает
01:52:56
так что это заработало после того, как мы вручную
01:52:58
переключил его, но сначала попутный ветер
01:53:02
не заметил, что это динамика
01:53:04
ценить
01:53:05
это действительно интересная ошибка, которую мы
01:53:07
просто наткнулся, но это хорошо, это
01:53:10
важно, что мы исправили это ниже
01:53:12
этот тег b у нас будет еще один
01:53:15
р-тег
01:53:16
и этот тег b будет просто отображать
01:53:18
заголовок элемента через точку
01:53:21
начнем, но давайте немного придадим этому стиль
01:53:24
давайте дадим ему имя класса, равное тексту
01:53:26
тире см, а также текст
01:53:30
даш серый даш 400 и мт-1
01:53:35
вот и все, это уже выглядит так
01:53:37
гораздо лучше, что у нас есть четыре таких карты
01:53:40
Прямо здесь
01:53:41
теперь, если мы уменьшим масштаб до обычного размера
01:53:45
так
01:53:46
и если мы его немного расширим, вы сможете
01:53:48
увидите, что он хорошо масштабируется к центру
01:53:51
экрана
01:53:52
выглядишь великолепно, так что теперь мы можем продолжить
01:53:55
с реализацией остальной планировки
01:53:58
давайте пройдем ниже этого div прямо здесь и
01:54:01
также давайте пройдемся ниже еще одного div
01:54:04
так
01:54:05
потому что мы начинаем с совершенно нового
01:54:07
раздел
01:54:08
Итак, давайте создадим новый элемент div и
01:54:11
просто чтобы дать вам представление о том, что мы
01:54:13
сейчас буду работать
01:54:14
это будет большая карта с
01:54:17
обновляются доходы и есть график
01:54:20
с расходами и бюджетом прямо здесь, так что
01:54:23
это будет первый раз, когда
01:54:24
мы собираемся углубиться в большее
01:54:26
синхронизировать компоненты Fusion
01:54:28
нам потребовалось много времени, чтобы создать это
01:54:30
макет и до сих пор у нас нет
01:54:33
изучил все преимущества, которые
01:54:34
syncfusion делает это сейчас, как только мы начнем
01:54:37
реализация различных страниц и
01:54:39
функциональные возможности, используя syncfusion, вы
01:54:42
начну замечать разницу и
01:54:44
насколько меньше времени вам понадобится, чтобы
01:54:46
построим что-нибудь еще лучше, так что давай
01:54:49
начните с этого раздела прямо сейчас
01:54:52
чтобы начать внедрение обновления доходов
01:54:54
раздел, мы можем зайти внутрь этого нового
01:54:57
создал div и можем присвоить ему класс
01:55:00
имя
01:55:02
давайте сделаем его гибким и добавим зазор
01:55:05
из 10
01:55:06
гибкая пленка, так что просто льняная черта
01:55:09
обернуть попутным ветром и оправдать рывок
01:55:12
в центре у нас будет еще один div
01:55:15
внутри там
01:55:16
так что у этого div будет класс
01:55:19
имя, равное
01:55:21
черный тире белый
01:55:23
а также в темном режиме
01:55:25
текстовое тире серое тире 200
01:55:28
и в темном режиме
01:55:30
bg-вторичное тире темное тире BG
01:55:34
маржа-3 или м-3 р-4
01:55:39
закругленная черта 2 XL и на средних устройствах
01:55:43
w-700
01:55:46
пиксели
01:55:48
вот так вот это создаст это
01:55:50
красивая бумага, такая как div
01:55:53
конечно, давайте добавим что-нибудь внутрь
01:55:56
мы можем начать с добавления div
01:55:59
и у этого div будет класс
01:56:01
имя равно flex и выравнивает тире
01:56:05
между там, где мы собираемся
01:56:07
есть тег p
01:56:09
и этот тег p будет означать доход
01:56:12
обновления, которые мы идем, как вы можете видеть, и
01:56:15
мы также можем дать ему имя класса
01:56:18
шрифт-полужирный
01:56:20
и напишите тире xl, вот и доход
01:56:24
обновления
01:56:25
под этим тегом фида у нас может быть еще один
01:56:28
div
01:56:29
и у этого div будет класс
01:56:32
имя, равное flex
01:56:34
центр элементов и пробел, тире четыре
01:56:39
внутри там у нас будет p
01:56:41
элемент
01:56:42
и этот элемент p будет иметь
01:56:45
охватывать
01:56:46
внутри которого мы собираемся визуализировать
01:56:48
примитивная точка
01:56:51
самозакрывающийся значок, мы идем по вашему пути
01:56:54
это можно увидеть в правом верхнем углу
01:56:57
и мы собираемся создать еще один
01:56:59
охватывать
01:57:00
что будет говорить о расходах, окей
01:57:02
пока это не имеет особого смысла
01:57:05
но давайте добавим несколько имен классов в наш b
01:57:08
ярлык
01:57:09
давай сделаем флекс
01:57:11
пункты в центре тире
01:57:13
давайте еще сделаем разрыв тире 2
01:57:16
текстовое тире серое тире 600
01:57:20
и при наведении
01:57:21
Drop Dash Shadow Dash XL вот и все
01:57:25
теперь у нас есть эта замечательная расходная бирка
01:57:27
но мы можем просто продублировать этот тег b
01:57:30
ниже
01:57:31
измените текст на зеленый
01:57:34
400 прямо здесь
01:57:36
и тогда вместо расходов мы собираемся
01:57:38
сказать бюджет
01:57:41
вот и все, теперь у нас есть эта часть
01:57:43
прямо здесь мы видим, что говорим
01:57:46
о расходах и бюджете
01:57:48
большой
01:57:49
так что теперь мы перейдем к этому
01:57:51
часть слева, которую мы собираемся
01:57:53
иметь два разных текстовых элемента
01:57:55
линейный график, а затем с правой стороны
01:57:58
у нас будет это великолепное зрелище
01:58:00
стек-диаграмма, так что теперь мы можем опуститься ниже этого
01:58:03
тег б
01:58:04
и ниже еще двух div
01:58:07
и тогда прямо здесь мы собираемся
01:58:09
создать еще один div
01:58:12
у этого div будет имя класса
01:58:15
равен МТ-10
01:58:18
гибкий
01:58:19
разрыв-10
01:58:21
гибкая обертка тире и выравнивание центра тире
01:58:26
ничего не произойдет, если мы сохраним это
01:58:29
но теперь нам нужно добавить что-то внутрь
01:58:31
об этом и о том, что что-то будет
01:58:33
div с рамкой, давайте добавим класс
01:58:37
имя
01:58:38
граница тире r тире 1
01:58:41
цвет границы штриха
01:58:44
а еще м
01:58:46
4 и пр
01:58:48
10 дополнение справа
01:58:50
если мы сохраним это
01:58:51
ты видишь, что ничего не получится
01:58:53
случаться
01:58:54
но мы можем добавить внутрь него div и
01:58:57
этот div будет содержать p
01:59:00
элемент, который p будет иметь два промежутка
01:59:04
элементы внутри него
01:59:06
первый из них отрендерит это
01:59:08
сумму прямо здесь, чтобы мы могли скопировать и
01:59:11
вставьте это прямо здесь и ниже, что мы
01:59:14
можно просто отобразить этот процент правильно
01:59:16
вот так давайте скопируем это
01:59:19
создайте новый элемент span и вставьте
01:59:22
процент
01:59:23
конечно, нам нужно как-то их стилизовать
01:59:25
поэтому давайте дадим имя класса первому
01:59:29
диапазон, который будет текстовым тире 3 xl
01:59:33
и
01:59:34
шрифт-полужирный, вот и все, это очень много
01:59:37
больше
01:59:38
а второму мы можем дать
01:59:40
имя класса равно p-1.5
01:59:44
так что давайте добавим немного дополнений, а теперь
01:59:47
вы увидите, как мы можем создать этот маленький
01:59:49
структура в виде таблетки, использующая только попутный ветер
01:59:53
давайте также дадим это при наведении
01:59:56
капля тире тень тире xl
01:59:59
курсор
02:00:00
тире указатель
02:00:02
округлое тире полное
02:00:04
текстовое тире белого цвета
02:00:06
и фоновый черто-зеленый
02:00:09
бросаться
02:00:10
400. поле слева, тире 3 и текстовое тире xs.
02:00:17
и вот, у нас есть наш маленький
02:00:19
знак процента выглядит отлично
02:00:22
теперь нам, конечно, придется добавить расходы
02:00:26
поэтому ниже отметки скорости мы собираемся
02:00:28
добавьте еще один тег p, и это просто
02:00:31
скажу бюджетный
02:00:33
мы можем дать ему имя класса, равное
02:00:36
текстовое тире серый-500
02:00:39
и мт-1
02:00:42
вот и все
02:00:43
теперь мы можем скопировать весь этот div
02:00:47
вставьте это ниже
02:00:48
и удалите элемент диапазона с помощью
02:00:50
процент, нам не нужен процент
02:00:53
для бюджета
02:00:54
скажем, бюджет будет
02:00:56
что-то вроде 48 000
02:00:59
и это будут расходы, так что если
02:01:02
мы сохраняем, чтобы вы могли видеть, что у нас есть
02:01:04
расход и бюджет
02:01:06
но к этому div давайте просто добавим класс
02:01:09
имя равно пустому тире 8 вот так
02:01:14
вот и все, теперь мы получаем просто
02:01:16
немного ближе к нашим фактическим данным о доходах
02:01:19
карта
02:01:20
пришло время написать наш первый код
02:01:23
диаграмма
02:01:24
спарклайн-диаграмму, которую вы можете видеть, мы можем
02:01:27
на самом деле наведите на него курсор и получите другое
02:01:29
точки данных, хотя это довольно просто
02:01:32
это выглядит великолепно
02:01:34
поэтому прямо под этим div мы можем создать
02:01:37
новый div
02:01:38
у этого div будет имя класса
02:01:41
равно
02:01:42
МТ-5
02:01:45
и внутри мы собираемся позвонить
02:01:47
самозакрывающаяся искровая диаграмма, например
02:01:51
этот
02:01:52
это компонент, который мы создали
02:01:56
сначала, прежде чем мы перейдем к этому, давайте на самом деле
02:01:58
передать реквизит
02:02:00
мы собираемся передать текущий цвет
02:02:02
который будет динамичным позже
02:02:04
а пока скажем просто синий
02:02:06
давайте также дадим ему идентификатор
02:02:09
линия тире искра
02:02:11
такая линия
02:02:13
нам нужно придать ему тип, который будет
02:02:15
быть установленным в линию
02:02:17
нам нужно придать ему высоту, которая равна
02:02:19
будет установлено значение 80 пикселей
02:02:21
так это 80
02:02:24
и нам также нужно передать ширину
02:02:27
что в данном случае будет
02:02:29
что-то вроде 250 пикселей
02:02:32
конечно, нам нужно передать данные для
02:02:34
эта диаграмма, и она у нас уже есть
02:02:36
подготовленные данные о площади спарклайнов
02:02:39
и мы можем передать цвет, который
02:02:41
снова будет просто синим
02:02:44
вот и все, и теперь мы проходим все
02:02:46
необходимый реквизит, и мы действительно можем
02:02:48
войдите в этот компонент спарклайна и
02:02:52
используйте его, чтобы начать реализацию
02:02:54
эти спарклайновые компоненты мы можем импортировать
02:02:57
компонент спарклайна из добавления синхронизации
02:03:01
слияние косая черта ej2
02:03:04
косая черта реагирует на тире диаграммы мы
02:03:07
установил этот пакет раньше, и он
02:03:09
дает нам доступ ко всем графикам
02:03:12
мы также собираемся импортировать инъекцию в ближайшее время
02:03:14
достаточно, чтобы увидеть, для чего это нужно, и
02:03:16
мы собираемся импортировать спарклайн
02:03:19
подсказка
02:03:21
вот и все, что нам нужно и
02:03:23
вообще-то это первый раз в этом
02:03:25
целое видео, которое вы увидите, как
02:03:27
хорошо использовать компонент syncfusion, я
02:03:30
врешь, ты видел этот компонент всплывающей подсказки
02:03:33
прямо здесь, но это было всего лишь
02:03:35
наименьшая возможная часть того, что
02:03:36
предложения syncfusion теперь мы увидим
02:03:39
маленькая схема в действии, но главное
02:03:42
стоит заметить, как просто создать
02:03:45
это
02:03:46
так что давайте погрузимся прямо в
02:03:48
сначала нам нужно получить весь реквизит, который
02:03:50
мы переходим к компоненту спарклайна
02:03:53
это идентификатор
02:03:55
высота с цветом
02:03:58
данные
02:03:59
тип
02:04:00
и текущий цвет
02:04:02
вот и все
02:04:04
и теперь единственное, что мы собираемся
02:04:06
возвращение будет искрой
02:04:09
линейный компонент
02:04:12
вот и все
02:04:13
вот так, конечно, мы должны предоставить
02:04:15
некоторые реквизиты, так что теперь, если вы перезагрузите
02:04:18
страница, которую вы не сможете увидеть
02:04:20
что-либо
02:04:21
но откуда ты знаешь, какой реквизит нам нужен
02:04:23
должны предоставить
02:04:24
ну, одна из вещей, которые мне действительно нравятся
02:04:26
типа насчет syncfusion это их
02:04:28
документация
02:04:30
есть много примеров, чтобы показать вам
02:04:32
как работает любой компонент, который вам не нужен
02:04:35
перейти на любой другой сайт за помощью
02:04:38
их документация показывает вам все
02:04:42
он ответит на все ваши вопросы
02:04:44
есть демо-версии кода
02:04:46
разные демо для разных ситуаций
02:04:48
и все остальное, что вам может понадобиться, так что в
02:04:51
в этом случае ты можешь перейти в спарклайн
02:04:54
начните, а затем вы сможете изучить
02:04:57
как его установить у нас уже есть
02:04:59
реагируйте на диаграммы, и вам просто нужно позвонить
02:05:02
это вот и все, но теперь, конечно, как мы можем
02:05:05
изменить ось типов размеров
02:05:07
кастомизация, все здесь так
02:05:11
не волнуйся, я научу тебя, как
02:05:13
использовать этот компонент в этом видео, но
02:05:15
если у вас есть дополнительные вопросы
02:05:17
просто посетите их документацию, это
02:05:20
удивительно, что наш спарклайн-компонент должен
02:05:23
есть идентификатор, скажем, идентификатор равен
02:05:26
идентификатор, который мы передаем через реквизит
02:05:29
мы собираемся сделать то же самое с
02:05:31
высота
02:05:32
и ширина, которую мы уже проходим
02:05:35
это через реквизит, так что это легко
02:05:38
мы собираемся установить ширину линии
02:05:40
равен 1
02:05:42
и тип значения должен быть равен
02:05:46
числовой
02:05:47
мы собираемся установить одинаковую заливку
02:05:49
раскрасить и, наконец, мы собираемся установить
02:05:52
граница должна быть равна цвету, который
02:05:56
равный текущему
02:05:58
цвет и ширина, которая будет
02:06:00
поставил на 2.
02:06:02
пока ничего не будет показано, потому что мы
02:06:04
ничего внутрь не помещал
02:06:06
что нам нужно сделать, так это позвонить
02:06:09
компонент инъекции такой
02:06:12
и мы должны предоставлять услуги, которые
02:06:15
мы планируем использовать
02:06:17
услуги
02:06:18
внутри массива мы хотим использовать
02:06:21
подсказка спарклайна, которая позволит
02:06:23
нам нужно навести на него курсор, чтобы увидеть больше
02:06:26
данные о графике
02:06:27
теперь, когда у нас это есть, мы можем продолжить
02:06:29
со всеми различными свойствами, поэтому
02:06:32
давайте наконец предоставим источник данных
02:06:34
самая важная часть и это
02:06:36
будут равны данным, которые мы
02:06:39
проходя мимо
02:06:40
наконец, мы собираемся назвать ось X
02:06:43
имя равно х
02:06:45
также имя y чему-то равно
02:06:48
как ты
02:06:50
и тип равен тому типу, который мы
02:06:52
проходя через реквизит
02:06:54
теперь ты это заметишь
02:06:55
все по-прежнему пусто, поэтому, если мы перейдем к
02:06:58
осмотреть
02:06:59
и откройте консоль
02:07:01
вы можете увидеть несколько замечательных полезных ошибок
02:07:04
игристый компонент не определен
02:07:07
так что если мы вернемся
02:07:09
похоже, мы назвали это спарклайн, верно
02:07:11
здесь
02:07:12
и давайте посмотрим, как мы это назвали в
02:07:14
импортировать это спарклайн, так что кажется
02:07:18
все в порядке
02:07:20
да, спарклайн
02:07:22
но игристый компонент не определен
02:07:24
так это происходит прямо здесь
02:07:27
похоже, я ошибся в написании спарклайна
02:07:30
компонент
02:07:31
здесь у меня есть строчная буква l и это
02:07:34
как это должно быть, так что давай просто это исправим
02:07:36
туда и сюда мы идем, как только я
02:07:38
перезагрузил страницу, график правильный
02:07:41
здесь диаграмма и так хороша, но мы
02:07:43
также может предоставить дополнительные данные всплывающей подсказки
02:07:46
так что давайте просто скажем, что настройки подсказки
02:07:49
будет равен объекту
02:07:52
мы скажем видимый
02:07:54
установлено значение true, и тогда мы собираемся
02:07:57
установите формат равным в
02:08:00
нить
02:08:01
доллар
02:08:02
х вот так
02:08:04
а затем данные
02:08:06
а потом ты прямо здесь, так вот что
02:08:08
произойдет, как только мы на самом деле наведем курсор
02:08:11
над ним это значение x, а затем
02:08:14
это значение y, и мы также можем добавить
02:08:17
настройки линии трека
02:08:20
так
02:08:21
и внутри объекта, скажем, видимого, является
02:08:25
истинный
02:08:26
теперь, если мы сделаем это
02:08:28
если навести курсор, то можно увидеть, что мы сейчас
02:08:30
просмотр данных графика
02:08:33
конечно, эти данные не так уж важны
02:08:34
прямо сейчас, потому что он не подключен к
02:08:36
эти данные это всего лишь фиктивные данные, но
02:08:39
представьте, если бы у вас были реальные данные, которые можно было бы вам показать
02:08:41
мог бы показать это и добавить это
02:08:44
отличная подсказка, объясняющая данные на
02:08:46
каждая точка и все, я это знаю
02:08:49
это была простая диаграмма, но вы можете видеть
02:08:51
это всего лишь один компонент, а затем
02:08:54
несколько вариантов, чтобы получить этот великолепный вид
02:08:56
диаграмма, полностью адаптированная для мобильных устройств
02:08:59
теперь мы можем вернуться к электронной коммерции и мы
02:09:02
можно продолжать обновлять информацию о доходах
02:09:04
похоже, наша кнопка следующая, так что просто
02:09:08
ниже этого div мы добавим один
02:09:10
больше div, и этот div будет иметь
02:09:13
имя класса равно
02:09:17
10
02:09:18
а также там будет кнопка
02:09:21
который является самозакрывающимся компонентом
02:09:24
он будет иметь цвет, равный
02:09:26
белый
02:09:27
а также цвет фона равен синему
02:09:31
текст будет говорить что-то вроде
02:09:33
скачать отчет и радиус границы
02:09:37
будет 10 пикселей
02:09:39
теперь, если мы вернемся, ты сможешь увидеть это
02:09:41
кнопка прямо здесь, но теперь давайте создадим
02:09:44
эту более красивую диаграмму, используя
02:09:46
синхронизация, на этот раз мы можем
02:09:49
фактически включать и выключать расходы или
02:09:52
бюджет, чтобы посмотреть, что происходит
02:09:55
поэтому ниже этого div и еще одного div
02:09:58
я собираюсь создать последний div
02:10:01
и этот div будет отображать
02:10:04
многослойный самозакрывающийся компонент
02:10:07
этому компоненту, который мы собираемся передать
02:10:09
ширина, которая будет равна
02:10:11
320 пикселей и высота, которая собирается
02:10:15
быть равным
02:10:16
360 пикселей
02:10:19
большой
02:10:20
так что, конечно, мы пока ничего не видим
02:10:22
потому что нам нужно зайти внутрь нашего
02:10:24
компонент и реализуем его прямо здесь
02:10:27
это будет второй
02:10:28
возможность для вас увидеть, насколько удивительно
02:10:31
syncfusion и как его можно создать
02:10:33
отличные графики за считанные минуты
02:10:36
сначала нам придется импортировать кое-что
02:10:39
из syncfusion, чтобы мы могли сказать импорт
02:10:43
компонент диаграммы
02:10:46
а также сериал
02:10:48
коллекция
02:10:50
директива
02:10:53
мы также можем получить директиву серии
02:10:57
и не беспокойся об этих именах, я
02:10:58
собираюсь показать тебе, где их найти
02:11:00
очень скоро
02:11:01
мы собираемся сделать укол
02:11:03
а также легенда
02:11:06
категория
02:11:08
колонна штабелирования
02:11:11
ряд
02:11:12
и, наконец, всплывающая подсказка
02:11:16
и это происходит из-за добавления синхронизации
02:11:20
косая черта ej2 Dash React Dash Charts
02:11:25
вот и все
02:11:26
наконец, нам нужно импортировать данные, которые
02:11:28
мы собираемся использовать импорт с накоплением
02:11:32
обычай
02:11:34
ряд
02:11:35
а также сложенные
02:11:37
начальный
02:11:38
Икс
02:11:39
ось
02:11:41
и тоже сложены
02:11:43
начальный
02:11:44
й
02:11:45
ось, вот и все, это исходит из
02:11:50
косая черта точка косая черта точка
02:11:52
данные, а затем манекен
02:11:55
и на этом пока всё, и как
02:11:58
можем ли мы создать эту диаграмму
02:12:00
ну, будет только один возврат
02:12:03
и это будет диаграмма
02:12:06
компонент
02:12:07
внутри этого компонента диаграммы, который нам нужен
02:12:09
чтобы создать компонент внедрения с помощью
02:12:12
различные услуги
02:12:14
поэтому сервисы указывают, что вы хотите
02:12:16
ваша диаграмма, чтобы иметь
02:12:18
мы хотим иметь легенду, которая будет продолжаться
02:12:20
быть этой частью прямо здесь, чтобы переключить ее
02:12:22
включить и выключить
02:12:24
мы также хотим иметь категорию a
02:12:27
группировка столбцов и всплывающая подсказка
02:12:30
поэтому следующим шагом будет предоставление всех
02:12:32
необходимые свойства
02:12:34
конечно, мы можем сначала получить кое-что от
02:12:37
реквизит
02:12:38
там мы передаем ширину
02:12:40
и высота
02:12:42
и что мы можем сделать
02:12:44
добавить ширину, которая будет
02:12:46
равна ширине, а также высоте, которая
02:12:50
будет равен высоте
02:12:52
и как только ты это сделаешь, ты увидишь
02:12:54
эта красивая сетка, где находится наша диаграмма
02:12:57
пойдёт, ты увидишь, как оно ещё и толкнуло
02:12:59
содержимое слева, давайте также
02:13:02
дайте ему идентификатор, равный стековой диаграмме
02:13:06
мы также можем присвоить ему основную ось X для
02:13:09
быть равным сложенной основной оси X
02:13:13
это немного изменит ситуацию
02:13:14
целей этой конкретной задачи, и мы
02:13:17
также можно указать основную ось Y
02:13:20
как основная ось Y стека, это приближается
02:13:24
из фиктивных данных, и это позволяет нам
02:13:26
чтобы лучше показать данные просто 100 200 300
02:13:30
400 и так далее, мы могли бы легко не
02:13:33
предоставил это, так что давайте прокомментируем это
02:13:35
пока и посмотрим, как пойдет
02:13:37
Следующее, что нам нужно сделать, это предоставить
02:13:39
свойство области диаграммы, и это происходит
02:13:42
быть равным объекту, где мы находимся
02:13:45
собираюсь установить границу, равную
02:13:47
другой объект
02:13:49
с шириной, установленной на ноль, поэтому мы имеем
02:13:52
полностью убрав границу с одним
02:13:54
легкая линия
02:13:56
мы собираемся установить всплывающую подсказку
02:13:58
быть равным объекту, где мы установили
02:14:01
свойство Enable имеет значение true
02:14:04
и, наконец, самая важная часть
02:14:07
ниже этой инъекции мы можем назвать серию
02:14:10
директива сбора
02:14:12
и внутри этого мы можем сопоставить наши
02:14:15
сложенные пользовательские серии, которые складываются
02:14:18
пользовательская серия — это данные, поступающие из
02:14:21
наши фиктивные данные, чтобы мы могли сказать точечную карту
02:14:24
мы собираемся получить предмет и
02:14:26
индекс
02:14:27
и мы хотим вернуть директиву серии
02:14:31
за каждый из наших товаров
02:14:34
так
02:14:35
это самозакрывающийся тег
02:14:37
которому мы собираемся дать ключ, равный
02:14:39
индексировать
02:14:40
а также мы собираемся распространить все
02:14:42
свойства нашего товара
02:14:45
это наши фактические данные
02:14:48
поэтому я собираюсь просмотреть наши данные, чтобы вы
02:14:51
можем посмотреть, как это выглядит там, где мы
02:14:53
перейти к данным сложенной диаграммы
02:14:56
мы просто предоставляем все разные
02:14:58
значения в эту диаграмму, например, на
02:15:00
по оси X у нас есть некоторые конкретные даты и
02:15:03
тогда у нас есть значения для этих дат
02:15:06
и похоже, что диаграмма умная
02:15:08
достаточно, чтобы сразу заметил, что
02:15:10
хотим ли мы использовать для осей X и Y
02:15:14
так что теперь похоже, что это даже не
02:15:16
необходимо, что мы можем сделать, это также сказать
02:15:19
настройки легенды, которые будут
02:15:22
объект, в котором мы собираемся установить
02:15:24
фон, который будет
02:15:26
белый, вот и все, так что теперь мы действительно можем
02:15:28
посмотрим, что происходит, и мы сможем переключиться
02:15:31
включение и выключение определенных значений
02:15:34
это здорово, мы только что создали отличный
02:15:37
просмотр графика за считанные минуты
02:15:40
диаграмма быстро исчезла для меня, поэтому
02:15:42
я думаю, это дает мне понять, что мне нужно
02:15:44
основная ось Y и основная ось X, так что я
02:15:48
просто собираюсь вернуть их и
02:15:50
сейчас все выглядит отлично
02:15:53
и единственное, что, кажется, не так
02:15:55
работаю прямо сейчас — это подсказки, если
02:15:58
мы наводим на него курсор и не можем получить ничего лишнего
02:16:00
информация
02:16:02
и чтобы это исправить, я думаю, нам нужно
02:16:04
изменить идентификатор
02:16:06
на основе того, как мы указали наши демо-данные
02:16:09
мы должны назвать это таким же образом, поэтому
02:16:11
это будут графики
02:16:13
и если мы перезагрузим страницу
02:16:16
вы можете видеть, что всплывающая подсказка теперь работает
02:16:18
и мы можем увидеть наши общие расходы по
02:16:21
месяц, а также бюджет по месяцам
02:16:24
это здорово, мы можем включить это и
02:16:27
выключено, и у нас есть великолепно выглядящая карта
02:16:31
вот и все, что касается нашей первоначальной электронной коммерции
02:16:35
страница, теперь мы наконец готовы начать
02:16:38
создание всех других наших страниц
02:16:40
наполнен удивительной функциональностью, такой как
02:16:43
эти страницы заказов сотрудники клиенты
02:16:46
календарь, канбан-доска и многое другое
02:16:50
так что это будет следующий шаг, который мы
02:16:53
можешь вернуться в наше приложение
02:16:55
мы можем закрыть все открытые на данный момент
02:16:57
файлы
02:16:58
и как вы можете видеть прямо здесь, следующий
02:17:01
страница, над которой мы можем работать, — это страница заказов.
02:17:04
Итак, давайте контролировать порядок кликов и приступим
02:17:08
прямо там, в нашем браузере, мы
02:17:10
также можете открыть ордера и увидеть
02:17:13
что в настоящее время он пуст, поэтому, если вы
02:17:16
чувствую, что тебе нужно сделать перерыв
02:17:17
это прекрасное время, чтобы просто посидеть немного
02:17:20
сделай немного упражнений и потом возвращайся
02:17:23
нас ждут захватывающие вещи, мы собираемся
02:17:25
реализовать всю эту таблицу, которая позволяет
02:17:27
тебе нужно отсортировать предметы по названию
02:17:30
имя клиента, статус суммы и
02:17:33
идентификатор заказа, так что следите за обновлениями
02:17:36
внутри заказов мы можем сначала импортировать
02:17:39
некоторые вещи, которые нам понадобятся
02:17:42
синхронизация слияния
02:17:43
так что это будет импорт
02:17:45
компонент сетки
02:17:48
так
02:17:49
нам также понадобятся столбцы
02:17:52
директива, нам также понадобится
02:17:54
директива единственного столбца
02:17:58
также компонент изменения размера
02:18:00
компонент сортировки
02:18:02
контекстное меню
02:18:05
компонент фильтра
02:18:07
страница
02:18:08
экспорт в Excel, да, даже это доступно
02:18:12
экспорт в PDF
02:18:15
редактировать
02:18:16
и, наконец, ввести
02:18:19
и все это исходит от
02:18:21
добавить синхронизацию
02:18:23
косая черта ej2 тире реакция тире сетки
02:18:28
для данных, которые мы можем импортировать
02:18:31
данные о заказах
02:18:34
и пункты контекстного меню
02:18:37
а также сетка заказов
02:18:40
это исходит из
02:18:42
точечный слэш
02:18:43
пустая косая черта данных
02:18:46
вот и все
02:18:47
и, наконец, мы будем использовать наш заголовок, поэтому
02:18:50
мы можем импортировать компонент заголовка
02:18:53
вот так из точечной косой черты
02:18:56
компоненты
02:18:57
и на самом деле компонент заголовка
02:19:00
будет тот, который мы собираемся
02:19:01
сначала создайте, поэтому внутри этого div мы
02:19:04
может визуализировать компонент заголовка
02:19:07
и мы можем передать заголовок, равный
02:19:09
заказы
02:19:10
и категория
02:19:12
равно странице, вот и все
02:19:16
так что это не компонент syncfusion
02:19:18
это компонент, который мы можем создать
02:19:20
самостоятельно, чтобы мы могли просто контролировать
02:19:23
нажмите на него
02:19:25
мы знаем, что хотим принять
02:19:27
категория, а также название
02:19:30
и этот заголовок будет просто
02:19:33
div
02:19:34
это будет иметь имя класса, равное
02:19:37
для нижнего поля или mb-10
02:19:41
у него будет тег p, которым является тег p
02:19:44
будет имя класса
02:19:47
равно текстовому тире, серому тире 400
02:19:51
и внутри там мы собираемся
02:19:52
визуализировать категорию
02:19:55
наконец-то у нас будет еще одна б
02:19:57
тег, и этот будет отображать
02:20:00
заголовок
02:20:01
так что теперь, если мы сохраним это
02:20:03
вы можете увидеть страницу и заказы
02:20:05
и давайте также дадим этому имя класса
02:20:08
заголовок
02:20:09
это будет текст
02:20:11
тире 3xl
02:20:13
шрифтовое тире экстра жирный отслеживание тире плотное
02:20:18
и текстовое тире шифер тире 900
02:20:22
как только ты это сделаешь, ты увидишь это
02:20:24
порядок страниц прямо здесь
02:20:26
это будет заголовок
02:20:28
чтобы мы могли вернуться к нашим заказам и
02:20:31
прямо здесь мы можем применить некоторые имена классов
02:20:33
к этому div, обертывающему наш заголовок
02:20:36
это будет маржа тире 2 и далее
02:20:39
маржа для средних устройств 10
02:20:42
отступ тире 2 и средние устройства
02:20:45
дополнение 10
02:20:47
бг
02:20:48
белая и закругленная черточка 3 xl
02:20:52
как только мы это сделаем, вы увидите это
02:20:54
хороший заголовок прямо здесь
02:20:56
конечно, теперь нам нужно создать
02:20:58
фактическая таблица и как вы можете видеть это
02:21:01
таблица наполнена функциональностью, которую мы
02:21:03
перебирать множество разных элементов
02:21:06
и мы можем отсортировать их по позициям
02:21:08
имя клиента и даже сумму, так как
02:21:12
мы бы реализовали это
02:21:14
использование синхронизации
02:21:16
ну, что мы можем сделать, так это создать сетку
02:21:20
компонент
02:21:21
прямо здесь, и компонент для этого
02:21:24
называется директивой columns, это просто
02:21:27
куда идут данные, чтобы мы могли перейти
02:21:30
наша сетка заказов
02:21:32
точечная карта
02:21:34
мы собираемся получить предмет, а также
02:21:36
индекс
02:21:37
и для каждого элемента мы хотим просто
02:21:40
визуализировать директиву отдельного столбца
02:21:44
так они называют это столбец
02:21:46
директива
02:21:48
и к этому самозакрывающемуся тегу нам нужно
02:21:50
укажите ключ, равный индексу
02:21:53
а потом мы выкладываем все данные
02:21:55
точечный элемент
02:21:58
поехали, если ты это сделаешь, ты заметишь
02:22:00
что сайт выходит из строя, поэтому мы можем перейти на
02:22:03
проверить и утешить
02:22:05
и, как вы можете видеть, директива столбца
02:22:08
не определено, это моя вина, я ошибся
02:22:11
это прямо здесь, так и должно быть
02:22:14
колонка, начнем, как только вы исправите
02:22:17
это ты сразу увидишь
02:22:19
наша великолепно выглядящая сетка
02:22:22
у нас есть изображение, имя клиента, всего
02:22:24
сумма и все это исходит от
02:22:27
наша сетка заказов, в которую мы действительно можем войти
02:22:30
это и, как видите, вы можете указать
02:22:34
сколько именно места занимает каждый конкретный
02:22:37
заголовок возьмет
02:22:39
Итак, мы только что настроили все
02:22:41
заголовки, но как нам на самом деле передать
02:22:44
данные в этот компонент сетки
02:22:46
ну, во-первых, мы можем дать ему идентификатор
02:22:50
идентификатор равен Grid Comp, а затем ниже
02:22:53
что вы можете предоставить источник данных
02:22:56
самое главное — источник данных
02:22:59
равно данным заказов
02:23:02
как только ты это сделаешь
02:23:04
все наши данные будут получены
02:23:06
заполненный прямо внутри нашей сетки, не является
02:23:10
это потрясающе
02:23:11
вы также можете прокручивать по горизонтали, и вы
02:23:14
можно увидеть все данные прямо здесь
02:23:17
еще одна замечательная вещь, на которую следует обратить внимание, это то, что
02:23:18
таблица полностью адаптирована для мобильных устройств, если
02:23:22
если вы расширите его, это займет
02:23:24
полная ширина экрана
02:23:26
это выглядит потрясающе, все наши вещи
02:23:29
прямо здесь и, как вы можете видеть по
02:23:32
по умолчанию у нас нет нумерации страниц
02:23:35
по умолчанию мы также не можем делать ничего вроде
02:23:39
сортировать товары по имени покупателя или
02:23:42
и так далее, как же вы на самом деле допускаете
02:23:45
эти вещи единственное, что тебе нужно
02:23:47
сделать, чтобы включить нумерацию страниц, скажем, разрешить
02:23:52
пейджинг
02:23:53
сохрани это
02:23:54
и прокрутите вниз
02:23:56
вы можете видеть, что теперь у вас есть только
02:23:59
первый 1 2 3 4 5 6 7 8 9 10 11 12
02:24:04
элементы, но у нас нет других элементов
02:24:08
но у нас также нет нужной страницы, поэтому
02:24:10
как мы можем перейти ко второму
02:24:12
страница ну, мы собираемся использовать эту инъекцию
02:24:15
компонент
02:24:16
и к настоящему времени вы должны начать видеть
02:24:18
шаблон
02:24:19
сначала мы используем основы каждого
02:24:21
компонент, а затем с помощью инъекции и некоторых
02:24:24
дополнительные свойства, которые вы можете разрешить
02:24:27
некоторые дополнительные функции, такие как нумерация страниц
02:24:30
Итак, мы собираемся сказать «инъекционные услуги»
02:24:32
внутри массива мы хотим добавить изменение размера
02:24:37
мы также хотим добавить сортировку
02:24:40
контекстное меню
02:24:43
фильтр
02:24:44
страница
02:24:46
превосходить
02:24:47
экспорт
02:24:49
редактировать и
02:24:51
экспорт в PDF
02:24:54
вот и начнем, если ты сохранишь это
02:24:56
вы можете видеть, что появилась нумерация страниц
02:24:59
Прямо здесь
02:25:01
теперь тебе может быть интересно, как ты
02:25:03
разрешить сортировку, как мы можем их отсортировать
02:25:06
предметы
02:25:07
думаю об этом
02:25:09
ну, на самом деле забавно, насколько это просто
02:25:11
единственное, что тебе нужно сделать, это сказать
02:25:14
позволять
02:25:15
сортировка
02:25:17
и это все
02:25:19
сохраните это и добавьте прямо сюда, чтобы вставить
02:25:22
услуги и сортировочные работы прямо из
02:25:26
коробка
02:25:28
разве это не удивительно
02:25:30
и это все, что нам нужно было сделать, чтобы
02:25:34
получите эту удивительную страницу сортируемых заказов
02:25:39
разве это не безумие
02:25:41
теперь нам потребовалось всего несколько минут, чтобы
02:25:44
внедрите его, и он станет полностью мобильным
02:25:47
отзывчивый, и это выглядит великолепно, мы
02:25:50
иметь полную нумерацию страниц для извлечения
02:25:52
данные из API
02:25:54
у нас есть разные таблетки для
02:25:56
статус общей суммы имя клиента
02:25:59
а также предмет и его изображение
02:26:02
хорошо выглядит
02:26:04
теперь достаточно скоро мы собираемся реализовать
02:26:06
вкладка «Сотрудники» и начнем
02:26:09
иметь еще более сложную страницу, где
02:26:12
мы сможем редактировать определенные значения
02:26:15
а также поиск по имени
02:26:18
так что это очень круто и так и будет
02:26:20
быть таким же простым, как выполнение заказов
02:26:24
страница была
02:26:25
потрясающе, так что давай закроем наши заказы
02:26:29
и давайте перейдем к нашему приложению и к нашему
02:26:31
вкладка сотрудники
02:26:33
большой
02:26:34
мы готовы приступить к реализации наших
02:26:37
страница сотрудников, поскольку сотрудники и
02:26:40
страница заказов очень похожа, мы можем
02:26:42
продолжайте и начните с копирования заказов
02:26:45
страницу целиком, поэтому давайте просто скопируем ее
02:26:48
и давайте вставим все прямо сюда
02:26:51
мы собираемся переименовать это обратно в
02:26:53
сотрудники
02:26:54
Прямо здесь
02:26:56
а также переименуйте его прямо здесь
02:26:58
так в чем же будет разница
02:27:00
условия импорта, а также сетевая составляющая
02:27:03
останется прежним, нам понадобится
02:27:06
инъекция, так что столбцы в порядке
02:27:08
директива и директива столбца
02:27:10
одинаковый
02:27:11
нам не понадобится ни изменение размера, ни
02:27:14
сортировка, а также фильтр контекстного меню
02:27:18
нам понадобится страница, и мы
02:27:20
не понадобится экспорт
02:27:23
поэтому нам нужно будет добавить
02:27:26
искать в этом случае
02:27:28
отлично, потому что мы позволяем пользователю
02:27:30
искать по разным именам, мы не будем
02:27:33
нужны данные о заказах, а это происходит
02:27:35
быть данными сотрудников
02:27:38
и, наконец, нам также понадобится
02:27:40
сетка сотрудников, поехали
02:27:42
заголовок, конечно, взят отсюда
02:27:44
компоненты
02:27:46
так что эта часть будет именно той
02:27:48
то же самое у нас будет сетка
02:27:50
компонент, но теперь внутри столбцов
02:27:52
директиву, которую мы собираемся перебрать
02:27:55
сетка сотрудников
02:27:57
Прямо здесь
02:27:58
а в службах инъекций мы просто
02:28:00
мне понадобится страница и отличный поиск
02:28:04
так что теперь, если мы сохраним это
02:28:06
и вернуться назад
02:28:08
мы можем перезагрузить страницу
02:28:10
и похоже, я неправильно написал сотрудников
02:28:13
данные прямо здесь или, скорее, это происходит
02:28:16
быть сеткой сотрудников, поэтому я составил
02:28:18
ошибка здесь
02:28:20
вот и мы больше не используем
02:28:22
данные о заказах, чтобы мы могли поместить сотрудников
02:28:25
данные прямо здесь
02:28:27
с этим исправлено, вот и все, посмотри на это
02:28:30
стол прямо здесь, возможно, ты здесь
02:28:32
интересно, а где поиск
02:28:35
ну, добавить это единственное, что у тебя есть
02:28:37
нужно сказать «Панель инструментов», а затем передать
02:28:40
массив, который будет называть поиск
02:28:43
мы также собираемся удалить этот идентификатор, верно
02:28:46
здесь
02:28:47
и давайте также установим ширину равной
02:28:50
авто
02:28:52
и, наконец, чтобы появилась наша панель инструментов
02:28:55
нам придется импортировать панель инструментов
02:28:58
от синффузии
02:28:59
и, наконец, добавьте его для инъекции прямо здесь
02:29:03
потому что мы хотим внедрить панель инструментов
02:29:05
функциональность, поэтому теперь мы можем перезагрузить
02:29:07
страница
02:29:09
и наша панель поиска находится прямо здесь, так что если
02:29:12
ты ищешь что-то вроде Нэнси
02:29:14
вы можете видеть, что он прекрасно отфильтровывает это
02:29:18
и давайте удалим и нажмем Enter, и мы
02:29:21
вернулись ко всем, пойдем с Омаром
02:29:25
это тоже работает и выглядит так
02:29:27
сейчас все работает отлично
02:29:30
давайте, конечно, переименуем это в «Сотрудники»
02:29:34
и это будет все для
02:29:36
страница сотрудников следующая страница в нашем списке
02:29:39
это будет страница клиентов
02:29:42
и вы могли заметить небольшую ошибку
02:29:44
у нас сейчас есть страница, на которой мы находимся
02:29:47
невидимый на нашей боковой панели
02:29:49
это потому, что мы еще не настроили
02:29:51
эти цвета темы, но не волнуйтесь скорее
02:29:55
достаточно, чтобы мы это исправили, чтобы
02:29:58
я сказал, что следующая страница в нашем списке — это
02:30:00
наши клиенты
02:30:02
большой
02:30:03
отличная работа, что удалось зайти так далеко в этом
02:30:06
курс
02:30:07
еще больше удивительных вещей появится, когда
02:30:09
мы переходим на календарный канбан и
02:30:12
редактор, это невероятно интересно
02:30:15
Как только мы закончим, таблица наших клиентов будет
02:30:18
будет выглядеть так
02:30:20
у нас будет наш обычный стол с
02:30:22
нумерация страниц, но теперь у нас будет
02:30:25
люди прямо здесь, и вы сможете
02:30:27
выбрать определенные строки
02:30:29
сейчас это всего лишь демонстрационная таблица, так что
02:30:31
на самом деле нажатие на лид не поможет
02:30:33
что угодно, но если вы реализуете полную толпу
02:30:36
функции, которые вы сможете удалить
02:30:39
строки из таблиц не так уж и хороши, и
02:30:42
то же самое касается двойного щелчка
02:30:44
прямо здесь, а затем изменив имя так
02:30:46
теперь мы можем нажать Enter и как вы можете
02:30:49
видите, я только что изменил значение в
02:30:52
определенную строку таблицы, которую вы также можете изменить
02:30:54
статус и все остальное, что есть
02:30:58
это здорово, давайте разберемся с этим
02:31:01
продолжите работу с этой таблицей редактирования
02:31:03
функциональность внутри наших клиентов, которую мы
02:31:06
можно импортировать, и это будет сетка
02:31:10
такой компонент
02:31:12
у нас всегда есть сетка, так что до сих пор было
02:31:14
работа с множеством различных синхронизаций
02:31:16
термоядерные сетки, у нас будет
02:31:18
директива столбцов
02:31:21
а также директива единственного столбца
02:31:27
тогда у нас будет страница
02:31:29
выбор
02:31:31
внедрить дополнительные услуги редактировать
02:31:36
панель инструментов
02:31:37
и сортировать и, наконец, фильтровать
02:31:41
и они получены из дополнительной синхронизации
02:31:43
fusion косая черта ej2 тире реакция тире
02:31:48
сетки
02:31:50
вот и убедись, что это сетки
02:31:52
множественное число и, наконец, нам также нужно
02:31:55
импортируйте некоторые местные вещи, и это
02:31:57
это будут данные клиентов
02:31:59
а также сетка клиентов
02:32:02
и это исходит от
02:32:04
эта косая черта
02:32:05
данные, косая черта, пустышка, поехали
02:32:09
и мы также собираемся использовать тот же самый старый
02:32:11
заголовок, чтобы мы могли сказать заголовок импорта, который
02:32:14
исходит из
02:32:15
точечный слэш
02:32:17
компоненты
02:32:18
и мы готовы приступить к реализации
02:32:20
наша таблица оценок, поэтому прежде всего
02:32:24
давайте обернем все в div
02:32:26
и это будет действительно div
02:32:29
похоже на тот, который мы уже использовали в
02:32:31
компонент наших предыдущих сотрудников
02:32:34
так что давайте быстро перейдем к сотрудникам
02:32:36
и что мы можем сделать, так это, по сути, скопировать
02:32:39
все это потому, что мы снова
02:32:41
работая с компонентом сетки, поэтому большая часть
02:32:43
все будет очень похоже
02:32:45
так что давайте просто вставим это сюда, где мы находимся
02:32:47
собираюсь оставить этот div здесь, но
02:32:50
мы собираемся изменить кое-что внутри
02:32:52
из нашего заголовка на этот раз это будет
02:32:55
клиенты
02:32:56
а не сотрудники сейчас для данных
02:32:59
источник: у нас больше нет данных о сотрудниках
02:33:01
поэтому мы можем переключить это на данные клиентов
02:33:04
и внизу мы пройдемся по
02:33:07
сетка клиентов, а не сетка сотрудников
02:33:10
наконец-то у нас больше нет доступа к
02:33:12
поиск, чтобы мы могли удалить этот поиск из
02:33:14
здесь, и если ты это сделаешь, и если ты напишешь
02:33:17
клиенты
02:33:18
правильно, у вас должна быть страница, которая
02:33:21
выглядит так
02:33:23
поэтому, просто скопировав предыдущую таблицу, мы
02:33:25
сразу удалось сделать этот вид
02:33:28
довольно здорово
02:33:29
но мы собираемся это немного изменить
02:33:31
что мы собираемся сделать, так это то, что у нас есть
02:33:33
данные клиентов
02:33:35
мы разрешим пейджинг и разрешим сортировку
02:33:39
но мы также добавим несколько новых
02:33:41
параметры
02:33:42
на панели инструментов вместо поиска мы
02:33:44
собираюсь включить удаление
02:33:46
вот и все, и как вы можете видеть, есть
02:33:48
много разных опций, которые вы можете добавить
02:33:51
тогда мы также разрешим редактирование
02:33:54
настройки
02:33:55
и это будет выглядеть примерно так
02:33:57
этот объект, которому мы собираемся сказать «разрешить»
02:34:00
удаление
02:34:01
быть установлено в true, а также разрешено
02:34:04
редактирование, для которого будет установлено значение true
02:34:07
так что это должно позволить нам редактировать вещи
02:34:10
но, конечно, прежде чем нам придется ввести
02:34:12
некоторые дополнительные услуги
02:34:14
Итак, у нас есть панель инструментов страницы, которую мы собираемся
02:34:17
также добавить выделение
02:34:19
а также редактировать
02:34:21
Сортировать
02:34:22
и отфильтровать, вот и все это
02:34:25
нам нужно
02:34:26
так что теперь, если вы сохраните это, вы должны быть
02:34:28
возможность двойного щелчка
02:34:30
так что теперь, если вы сохраните и перезагрузите страницу
02:34:33
у вас должна быть возможность дважды щелкнуть и
02:34:35
вы можете редактировать определенные поля
02:34:37
конечно, если вы перезагрузите страницу, которая
02:34:39
поле вернется к тому, что было
02:34:42
потому что на самом деле мы не реализуем
02:34:44
любые функции толпы, которые могут быть
02:34:46
видео само по себе
02:34:48
но если вы хотите, чтобы я это создал
02:34:50
видео и подключить полный функционал
02:34:52
в приложении, похожем на mern, с
02:34:55
компоненты синхронизации, которые будут
02:34:57
потрясающе, так что просто дайте мне знать
02:34:59
Комментарии
02:35:01
но с учетом сказанного это было невероятно
02:35:04
легко, как видите, наша таблица правильная
02:35:07
здесь у нас есть нумерация страниц, мы удалили
02:35:10
прямо здесь, и мы можем редактировать каждый конкретный
02:35:13
поле подряд не так уж и здорово, поэтому с
02:35:17
что ты только что увидел, что нам потребовалось много времени
02:35:19
времени, чтобы создать это простое представление, используя
02:35:22
просто попутный ветер, правильно
02:35:23
но с синфузией это было невероятно
02:35:26
легко создать три совершенно разных
02:35:29
столы с разным функционалом
02:35:32
но сейчас мы погружаемся в хорошее
02:35:34
вещи
02:35:35
сейчас мы создадим четыре невероятных
02:35:39
различные компоненты
02:35:40
я говорю о календаре
02:35:42
канбан
02:35:44
редактор и палитра цветов — все они есть
02:35:47
совершенно разные, и вы увидите, как мы
02:35:50
можно реализовать их с помощью syncfusion
02:35:53
и что я могу сделать, это свернуть это обратно
02:35:55
прямо здесь, и мы собираемся войти в
02:35:58
наш компонент календаря прямо здесь и
02:36:00
также внутри нашего приложения мы можем открыть
02:36:03
наш календарь вот и все
02:36:05
это первый, да, календарь
02:36:08
здесь первый
02:36:10
для начала наш календарь мы можем импортировать
02:36:13
все необходимое для синхронизации
02:36:14
компоненты
02:36:16
на этот раз это будет не сетка
02:36:18
мы собираемся импортировать расписание
02:36:21
компонент
02:36:23
нам также нужно еще несколько, и это произойдет
02:36:25
быть
02:36:26
Просмотры
02:36:28
директива
02:36:29
а также директива просмотра в единственном числе
02:36:33
вы уже можете заметить подобную закономерность
02:36:35
к тому, что у нас было в сетках, мы собираемся
02:36:37
также импортировать некоторые дополнительные услуги
02:36:39
как день
02:36:41
неделя рабочая неделя
02:36:44
месяц
02:36:46
повестка дня
02:36:48
изменить размер
02:36:52
и наконец
02:36:53
перетащить и оставить
02:36:56
все это поступает из дополнительной синхронизации
02:36:59
слияние
02:37:00
косая черта ej2 тире реакция тире
02:37:03
расписание
02:37:05
и, наконец, по-настоящему все изменить
02:37:07
еще дальше мы собираемся импортировать
02:37:10
дата
02:37:12
сборщик
02:37:13
компонент
02:37:14
и это происходит из-за добавления синхронизации
02:37:18
косая черта ej2
02:37:20
Dash React Dash календари нам тоже нужны
02:37:24
импортировать запланированные данные, так что правильно
02:37:26
здесь это будут запланированные данные
02:37:29
и это исходит из наших обычных данных, поэтому
02:37:32
это будет
02:37:34
точка косая черта данные косая черта пустышка там
02:37:38
мы идем
02:37:39
и похоже, у нас проблема
02:37:42
перетащите прямо сюда, откуда
02:37:44
мне это кажется хорошим
02:37:46
но там говорится, что директиваviews имеет
02:37:49
здесь уже было объявлено, что мы были
02:37:51
предполагается, что у него есть директива просмотра
02:37:53
единственное число
02:37:55
большой
02:37:56
и, наконец, нам также понадобится
02:37:58
заголовок импорта заголовка
02:38:00
и это исходит от
02:38:03
компоненты точечной косой черты
02:38:05
отлично, позвольте мне написать это правильно
02:38:08
и мы готовы приступить к реализации
02:38:10
календарь
02:38:11
у нас будет один div, который будет
02:38:13
оберните все, и этот div будет
02:38:16
иметь имя класса, равное
02:38:19
м
02:38:20
2 в качестве запаса на средних устройствах m, тогда
02:38:25
МТ-24
02:38:27
д
02:38:28
2
02:38:29
на средних устройствах p
02:38:31
10
02:38:32
b g черточка белая и закругленная черточка 3 xl
02:38:36
это будет вся наша открытка
02:38:40
тогда внутри него у нас будет наш
02:38:42
заголовок
02:38:43
самозакрывающийся тег, который собирается
02:38:45
иметь категорию, равную приложению
02:38:49
и у него будет название
02:38:51
равно календарю
02:38:54
вот и все отлично, вы можете это увидеть
02:38:56
заголовок прямо здесь, тот же, что и у нас
02:38:59
с заказами сотрудников клиентов и
02:39:02
теперь календарь теперь под нашим заголовком, мы можем
02:39:05
визуализируем наш компонент расписания
02:39:08
компонент расписания не собирается
02:39:10
быть самозакрывающимся тегом, потому что нам нужно
02:39:12
внедрить в него некоторые дополнительные сервисы
02:39:15
так что мы можем сказать инъекция
02:39:18
это будет самозакрывающийся тег
02:39:20
там будут услуги
02:39:22
свойство
02:39:23
и это будет равно массиву
02:39:26
где мы проедем сегодня
02:39:29
неделя
02:39:31
нам тоже понадобится
02:39:32
рабочая неделя
02:39:34
месяц
02:39:36
изменение размера повестки дня
02:39:39
и перетащить
02:39:41
и
02:39:42
брось, поехали, и теперь у нас есть все
02:39:45
услуги, которые нам нужны
02:39:47
и если ты сделаешь именно это, ты собираешься
02:39:50
сразу же увидеть великолепный календарь
02:39:53
появится прямо здесь и, как вы можете заметить
02:39:56
мы реализовали день, неделю, рабочую неделю, месяц
02:39:59
и повестка дня, так что теперь, если вы нажмете правой кнопкой мыши
02:40:01
здесь вид изменится
02:40:04
немедленно
02:40:05
разве это не безумие, ты тоже можешь переключиться
02:40:08
между разными неделями или если вы находитесь
02:40:10
просмотр месяца, между которым можно переключаться
02:40:12
разные месяцы тоже прямо из
02:40:15
коробка, если ты нажмешь прямо здесь, ты собираешься
02:40:17
получить новое определение заголовка, чтобы вы могли
02:40:20
добавьте новое событие, и это сработает
02:40:23
сразу же с места в карьер
02:40:26
перетаскивание также работает, так что это
02:40:28
феноменальный
02:40:30
теперь, конечно, если я перезагрузлю эту страницу,
02:40:32
данные не останутся здесь, и это
02:40:35
потому что у нас нет базы данных
02:40:37
связан с этим снова, если ты хочешь меня
02:40:39
создать морское приложение, в котором
02:40:41
мы собираемся сделать всю эту работу, мы
02:40:43
определенно могу сделать это в этом видео, я
02:40:46
просто показываю вам, как легко это сделать
02:40:48
создать потрясающий пользовательский интерфейс и заставить его работать
02:40:51
с syncfusion прямо сейчас, если начнешь
02:40:53
прокручивая, ты заметишь, что это так
02:40:55
довольно долго
02:40:57
Итак, что мы можем сделать, так это изменить
02:40:59
высота
02:41:00
давайте добавим некоторые реквизиты и просто передадим
02:41:02
высота опоры что-то около 650
02:41:06
таким образом, он будет хорошо вписываться в наш
02:41:08
экран
02:41:09
и конечно самое главное
02:41:12
для нас сейчас это импортировать наши
02:41:14
запланированные данные, мы можем сделать это с помощью
02:41:16
создание нового свойства под названием event
02:41:19
настройки
02:41:20
мы можем установить это как объект, а затем
02:41:23
сказать источник данных
02:41:24
так
02:41:26
равно данным расписания
02:41:28
если мы сохраним это, вы заметите, что
02:41:31
ничего не произошло, и это потому, что если
02:41:34
мы переходим к нашим запланированным данным, вы можете
02:41:36
обратите внимание, что все времена начала и
02:41:39
Конец времен наступит примерно в 2021 году, а сейчас
02:41:43
2022, поэтому мы не можем увидеть, что именно
02:41:46
мы можем изменить дату начала в
02:41:49
в этом случае, чтобы мы могли сказать выбранную дату
02:41:52
равно
02:41:54
новую дату мы передаем в объект даты и
02:41:58
давай сделаем что-нибудь вроде 2021 года
02:42:00
0, а затем 10.
02:42:03
это подтолкнет нас к этому
02:42:05
дата, и если мы прокрутим вверх, вы увидите все
02:42:08
наших мероприятий прямо здесь мы также можем
02:42:10
перейди на рабочую неделю, месяц, чтобы мы могли увидеть
02:42:13
все еще лучше
02:42:16
Просмотр повестки дня — это очень круто, потому что вы
02:42:18
можно увидеть все из них, перечисленных в хорошем
02:42:21
формат списка, разделенный по дням и отсортированный
02:42:25
по временам
02:42:27
это выглядит великолепно
02:42:29
и этот удивительный календарь прямо из
02:42:32
поле позволяет перетаскивать
02:42:34
разные события
02:42:36
нажмите на них, чтобы отредактировать их
02:42:38
и у вас есть возможность редактировать
02:42:40
название, местоположение, дата начала и окончания
02:42:44
со всеми средствами выбора даты и времени
02:42:47
представьте, сколько времени вам понадобится
02:42:49
потратьте, чтобы создать это в материальном интерфейсе или
02:42:53
представьте, сколько времени это займет, если
02:42:55
ты должен был сделать это с нуля
02:42:58
это займет недели, и большинство из них
02:43:00
вероятно, будет так много ошибок, потому что обработка
02:43:03
даты и время невероятно сложно
02:43:07
fusion, вы можете использовать их расписание
02:43:09
компонент и все прямо здесь
02:43:12
прямо из коробки я подумал, что мы
02:43:14
придется реализовать выбор даты
02:43:16
самостоятельно, а также рассматривает директивы и
02:43:19
директива просмотра, но в данном случае это так
02:43:22
гораздо проще, чем то, что они заставляют это работать
02:43:25
прямо из коробки
02:43:27
отлично, и хотите верьте, хотите нет, но мы закончили
02:43:30
с нашим первым приложением — календарем
02:43:33
поэтому следующим шагом будет переключение на наш
02:43:35
канбан-доска, если мы перейдем к разработанной
02:43:38
приложение, вы можете пойти прямо сюда и посмотреть это
02:43:41
это Trello или клон Jira, вы можете
02:43:43
свернуть любую конкретную категорию и переместить
02:43:46
вокруг задач
02:43:48
это отлично работает, и мы собираемся
02:43:51
реализовать это с помощью syncfusion, чтобы мы могли
02:43:54
вернись в наше приложение
02:43:55
вернись в приложение прямо здесь и потом
02:43:58
нажмите кнопку управления канбан, чтобы мы могли получить
02:44:00
начали создавать канбан для наших оценок
02:44:04
компонент, процесс очень похож
02:44:07
поэтому мы можем сначала импортировать что-то известное

Описание:

Every web developer needs to build a React Admin Dashboard Application. Learn how to create the best and most modern one simply by watching this course. This Admin Panel includes one Dashboard, Three Pages, Four Apps, and Seven fully functional charts! 💻JS Mastery Pro - https://www.jsmastery.pro/?discount=youtube ✅ A special YOUTUBE discount code is automatically applied! ⭐Syncfusion Components: https://www.syncfusion.com/ ⭐Syncfusion React Components: https://www.syncfusion.com/react-components If you want to get a finished, highly customizable Material UI version of a similar dashboard, check out Flexy React Material Dashboard - https://www.wrappixel.com/templates/flexy-react-material-dashboard-admin/?ref=257&campaign=Flexy 📚 Materials/References: GitHub Code (give it a star ⭐): https://github.com/adrianhajdin/project_syncfusion_dashboard Styles & Other Code: https://gist.github.com/adrianhajdin/7d0eea1cbab4ab21a69dc8c2faf9b831 Assets: https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/adrianhajdin/project_syncfusion_dashboard/tree/main/src/data You'll learn how to build a fully functional calendar, a kanban board, a WYSIWYG editor, and a color picker, as well as seven different charts! Alongside building this phenomenal application, in this video, you'll learn: - Advanced React Best Practices such as folder and file structure, hooks, and refs - Advanced State Management of the entire application using React Context API - And most importantly you’ll learn how to use Syncfusion - World's Best UI Component Suite for Building Powerful Web, Desktop, and Mobile Apps 💻 Master JavaScript: https://www.completepathtojavascriptmastery.com/ Use the unique promo code "YOUTUBE" on checkout to save $60! 📙 Get the Ultimate Frontend & Backend Development Roadmaps, a Complete JavaScript Cheatsheet, Portfolio Tips, and more - https://taplink.cc/javascriptmastery/p/7fb4d6/ 💻 Join our Discord Community - https://discord.com/invite/n6EdbFJ 🐦 Follow us on Twitter: https://twitter.com/jsmasterypro 🖼️ Follow us on Instagram: https://www.facebook.com/unsupportedbrowser 💼 Business Inquiries: [email protected] Time Stamps 👇 00:00:00 Intro 00:08:16 Setup 00:51:38 Sidebar 01:06:21 Context API 01:15:25 Navbar 01:39:45 Homepage 01:54:44 Revenue Section 02:17:36 Data Tables 02:36:10 Calendar 02:44:02 Kanban 02:49:21 WYSWYG Editor 02:53:49 Color Picker 02:59:13 Theme Fixes 03:33:10 Charts 03:51:18 Deployment

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Build and Deploy a React Admin Dashboard App With Theming, Tables, Charts, Calendar, Kanban and More"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.