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

Скачать "49 - React JS практика - страница пользователей"

input logo icon
Теги видео
|

Теги видео

javascript
программирование
уроки
с
нуля
обучение
js
react
react js
reactjs
react курс
react практика
react пример
redux
курсы
инкубатор
минск
online
бесплатно
практика
примеры
курс
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:05
кати гайдик on
00:00:08
а сутра
00:00:11
привет друзья это димыч и мой авторский
00:00:13
курс по ряду с react тут самура
00:00:16
и мы продолжаем с вами практиковаться
00:00:18
практика уроки премьеры курс короче это
00:00:21
все про то что вы смотрите я надеюсь и
00:00:24
дальше буду полезен вам как был полезен
00:00:27
до сих пор спасибо за комментарий
00:00:30
спасибо за обратную связь очень и очень
00:00:32
мотивирует меня продолжать дальше по
00:00:34
beach
00:00:36
guf ну что ребят мы с вами уже приходим
00:00:39
к такому интересному важному моменту это
00:00:41
аят запросы на сервак давно пора уже
00:00:44
rest api там api взаимодействия серваком
00:00:46
очень интересная тема которую мы обязаны
00:00:48
с вами начать уже скорее бомбить чтобы
00:00:50
наши соц сеть была поприкольнее
00:00:51
поинтереснее для этого мы сделаем
00:00:55
отдельную страничку на которой
00:00:56
собственно говоря и будем потом это все
00:00:58
дело оттачивать с которой мы начнем это
00:01:01
делать ночевать страничка всех
00:01:02
пользователей то есть страничка например
00:01:05
fight users найти пользователя и здесь
00:01:07
отображается все пользователи которые
00:01:09
есть например в соцсети зарегистрированы
00:01:11
аватарка кнопка follow анфалова дима
00:01:14
подписаться отписаться
00:01:15
имя человека статусу и текста в этом
00:01:17
страна город откуда он и кнопка показать
00:01:20
ещё шоу мой отряд эта крутилка закрутилось
00:01:22
показались еще schauma покрутил к
00:01:24
закрутилось показалось еще и так далее
00:01:25
давайте эту страничку сейчас мы с вами
00:01:27
сделаем
00:01:28
и из помним все то что мы с вами уже
00:01:30
знаем то есть это урок будет он длинна
00:01:32
будет новым и здесь будем сами проходить
00:01:35
все то что мы с вами уже проходили мы
00:01:37
будем просто закреплять на новые
00:01:38
странички все эти знания которые у нас
00:01:40
есть плюс естественно несколько каких-то
00:01:42
интересных таких лайфхаков инсайдов я
00:01:45
вам расскажу чтобы мы становились короче
00:01:48
но это естественный процесс когда мы
00:01:49
разрабатываем даже очередную новую
00:01:51
страницу вроде бы такую же но всегда
00:01:53
что-то новое всплывает всегда что-то
00:01:54
новое мы узнаем поэтому ребят давайте не
00:01:56
тормозить давайте давайте побить эту
00:01:59
страничку
00:02:01
вспоминаем как ему вообще страница
00:02:03
переключаются у нас вы
00:02:04
а.п. apps если вы забываете структуру
00:02:07
что у вас где у вас ребята должна лежать
00:02:09
лист бумаги там должно быть все
00:02:11
нарисовано все должно быть
00:02:13
задокументирована вы должны четко
00:02:14
посмотреть свою бумажку и точно понимать
00:02:16
где а вот что вы должны проект знать как
00:02:19
бы от и да буквально какая у вас
00:02:21
структура проект
00:02:22
этот то вы должны легко знать и мы видим
00:02:25
что у нас здесь есть в бы две странички
00:02:26
две страницы с помощью мы их
00:02:29
организовали с помощью роботов что такое
00:02:31
road провод это компоненты которая все
00:02:34
что она делает она следит за углом в
00:02:36
браузере и если урок совпадает она
00:02:38
делать рендер
00:02:39
вызывает свой вот этот метод который в
00:02:42
нашем случае возвращает gsx разметку
00:02:44
возвращает конкретную компоненту здесь
00:02:46
контейнер 0 той лак здесь profile да
00:02:48
этот road то есть эти rock & roll там
00:02:51
этим плевать каким образом
00:02:52
url изменился в браузере важный момент
00:02:54
то ли по обычной ссылке то intel cherry
00:02:56
дна v-link то ли через просто
00:02:58
пользователь руками бил road у плевать
00:03:00
он просто следит за ночная строку
00:03:01
браузера если там что то есть похожая на
00:03:04
это он это рисую если нет он это
00:03:06
уничтожает то есть если несоответствие
00:03:08
он то что он от рисовал он уничтожает
00:03:10
соответственно в одном и том же месте
00:03:11
придай wax показывается эта штука
00:03:13
3 profile показывается эта штука а мы
00:03:16
еще добавим сейчас юзер с вами добавим
00:03:20
users users так users так как у нас у
00:03:29
компонента нету заготовленные мы вернем
00:03:31
просто диску пока то есть мы должны
00:03:33
здесь вернуть свамиджи секс разметку по
00:03:35
сути вот это вот вот это вот функция оно
00:03:38
по сути является компонентой так как это
00:03:40
компоненты которая вызовется роллтон и
00:03:42
от рисуется и бы компоненту эту
00:03:44
определяем вот так вот динамически
00:03:46
определяем эту компоненту а компонента
00:03:49
возвращает помню jessie j sexy that each
00:03:51
тем или подобные html прочим джаз крики
00:03:54
то есть джесси с users на давайте
00:03:56
проверим сейчас
00:03:57
что у нас юнити глинки нас не туда
00:04:01
попасть не можем руками вбить что еще
00:04:03
раз подтверждает что users вот она users
00:04:06
что роботу плевать каким образом в
00:04:08
адресной строке браузера вот здесь этот
00:04:11
url появился вели его на в ленком кликом
00:04:15
рукописным текстом безразницы все ok
00:04:18
давайте тогда заготовим кир компоненту
00:04:20
за которым компонентом
00:04:24
простенькую компоненту делаем создадим
00:04:25
отдельную папку назовем ее на камер
00:04:28
users new
00:04:31
directory users
00:04:33
в этой папке везешь положим нашу
00:04:35
компонент и компонент это обычный джесс
00:04:38
файл либо джесс xfile gsx только
00:04:41
используйте ребят gsx только для
00:04:43
компонента не используйте джей секс
00:04:44
расширения для режиссеров или для других
00:04:48
файлов потому что тогда могут быть
00:04:50
непредсказуемы и поведения и короче вы
00:04:52
непонятные баги будут влазить users с
00:04:56
большой буквы с маленькой я обычно пишу
00:04:58
название компонент так добавить она
00:05:00
предлагает сразу в репозитории добавляю
00:05:03
с большой буквы високий давайте
00:05:05
вспоминать да кстати говоря такой вопрос
00:05:07
на сервисе могут дать смотрите импорт мы
00:05:09
делаем импорт react from react
00:05:13
хотя по сути мы нигде его не используем
00:05:15
этот react это слово як миледи
00:05:17
использованы мы обязаны обязаны его
00:05:19
написать говорим users равно это
00:05:22
компонент и компонент эта функция чистая
00:05:24
функция которая принимает пропсы
00:05:26
и возвращает же секс разметку возвращает
00:05:29
gsx-r метку тиф users will be he
00:05:34
юзеры будут здесь возвращает gsx
00:05:37
разметку экспортировать да не забываем
00:05:39
сделать экспорт по дефолту этих юзеров
00:05:42
экспортируем чтобы эту компоненты можно
00:05:43
было использовать
00:05:44
где-то там в разметке в другой то есть
00:05:47
использовать чтобы этот компонент и по
00:05:48
сути мы так создали что можно было
00:05:50
использовать так вот вопрос вот эта
00:05:51
штука обязательно и не напишем нас в web
00:05:54
шторм предупредит о том что мы забыли
00:05:56
так будто говорит что g секс не работает
00:05:59
без реактор без реакции без импорта
00:06:01
react и почему давайте в двух словах так
00:06:04
начнем до узнавать сами g секс это всего
00:06:07
лишь колледжа считается java script
00:06:09
расширение джесс расширения gsx это у
00:06:13
нас браузер это у нас браузер это у нас
00:06:18
короче давайте так попадает в секс
00:06:21
браузер джей сексу браузер попадает от
00:06:27
нет конечно же sx не понимается
00:06:29
браузером а как же тогда чтобы падает в
00:06:32
браузер попадает в браузер джесс из
00:06:34
который превращается в обычный же вас
00:06:36
crypt то есть же и секс превращается в
00:06:40
обычный java-script благодаря чему
00:06:42
благодаря кому он превращается в обычный
00:06:44
же вас благодарят bay blu то есть на
00:06:46
самом деле мы сами пишем нам удобнее
00:06:48
писать джей секс потому что это удобно
00:06:50
мы видим разметку как она есть
00:06:52
но по факту это вся разметка
00:06:53
превращается в обычный java script там
00:06:54
да говори ок . кредит элементы так далее
00:06:57
об этом еще поговорим
00:06:58
то есть жизнь секс на самом деле в
00:06:59
браузер не попадать браузер не поймет
00:07:01
его попадает java script обычно ebay был
00:07:04
транс пилят ару называется мэйбл он он
00:07:09
транслирует это джон транслирует джесс
00:07:11
extras апеллирует превращает же секс в
00:07:14
джесс это тоже джейс попадает сюда
00:07:16
соответственно так как jay-z
00:07:18
превращается джесс а в этом джесси как
00:07:21
раз таки используются этот реакторе ок .
00:07:23
там crate элемент соответственно этой
00:07:27
этом этой страничке этому g сексу нужен
00:07:29
ряд потому что когда б был транспонирует
00:07:31
эту штуку то что надо
00:07:33
понадобится нам понадобится импорт
00:07:36
реактор наберем такой вот ответ поставь
00:07:40
лайк если ты этого не знал его ставь
00:07:42
лайк много face слиты
00:07:45
тебе нравятся мои уроки и ты извлекаешь
00:07:47
из них пользу дружище спасибо большое
00:07:49
опять всем за поддержку так что давайте
00:07:51
этот компонент и users который мы
00:07:53
создали до от рисуем вот здесь вот вы
00:07:57
бывает так без мышки когда работаешь
00:07:59
говорят на так ладно хватит users буду
00:08:03
стараться не отвлекаться ребят на левые
00:08:06
темы смысле у меня скачет так
00:08:08
импортировали users давайте проверим что
00:08:10
мы видим users will be he все отлично
00:08:13
вроде бы все хорошо и тут вопрос 3 какой
00:08:15
ребята но состоит из чего вообще
00:08:17
начинать разработку с ее а то есть
00:08:20
компоненты или например с радиусе 1 a
00:08:23
state а то бишь среда ксо да давайте
00:08:27
вспомним кто важнее бизнес уровень или
00:08:30
бизнес уровень важнее или ей
00:08:32
правильно бизнес уровень важней и вообще
00:08:35
говоря то есть да это юваль у нас это 1
00:08:39
юань это у нас был бизнес уровень bl
00:08:45
вот был это ридак а это у это react
00:08:49
простите
00:08:50
компоненты внешний вид а это стоит ли
00:08:53
dax до бизнес-логика ну нет смысла
00:08:58
бизнес-логику разрабатывать без знаний юань это
00:09:01
стопроцентно факт как бы ну мы по-любому
00:09:02
смотрим с вами на экран на разметку
00:09:06
здесь смотрим понимаем как-то выглядит
00:09:08
понимаем какие процессы происходят какие
00:09:10
кнопки нажимаются статуса меняются что
00:09:12
происходит какой бизнес происходит а
00:09:14
потом уже а потом уже соответственно
00:09:17
делаем белил и уже потом сделал был
00:09:20
потом уже накручиваем юань вообще вы
00:09:23
тяги говоря в идеале как бы когда
00:09:25
продвинутые разработчики с опытом они
00:09:26
сначала прорабатывают state
00:09:28
прорабатывают state а потом только
00:09:31
накручивают ей давайте попробуем на
00:09:33
страничке для страничке users of так и
00:09:35
сделать начнем с три юзера начнем среди
00:09:38
у сары давайте зададим reviews are
00:09:40
создадим радиус r радиус r это опять же
00:09:44
да определение чистая функция которая
00:09:46
принимает старый state принимает action
00:09:49
если нужно и этот старый стоит
00:09:51
модифицирует по правилам и будет
00:09:53
обильности то есть работая сколько и
00:09:55
возвращает измененную копию либо
00:09:58
нетронутую стоит если вы менять не надо
00:09:59
было из этой функции идем в редокс
00:10:05
нажали на паузу записали себе то
00:10:07
определение и проговорили его примерно
00:10:09
за мной проговорили на собеседовании вам
00:10:13
то нужно будет рассказать
00:10:14
мы вообще понимать это нужно да так
00:10:16
создаем новый файл
00:10:17
создаем файл давайте я все-таки создам
00:10:19
скопирую какой-нибудь profile регистры
00:10:22
скопирую сюда что-то продюсер на что то
00:10:25
есть ну чтобы но мне больше нравится
00:10:27
контра цикл проекта что я экономлю таким
00:10:29
образом время users среди us our users
00:10:33
regisseur добавить profile или users
00:10:37
меня shift и в 6 мы на прям здесь users
00:10:42
радиусе рс радиатор на увидите 6 сразу
00:10:46
поменяла и
00:10:47
сейчас тут мне не понадобится носят
00:10:49
посмотрим экшена здесь какие то будут
00:10:51
другие возвращают не будем там копию
00:10:54
условно говоря но пока сейчас что-нибудь
00:10:57
и так заглушки оставлю это знаете что
00:10:59
давайте без заглушек давайте все-таки вы
00:11:01
учитесь если я то понимаю а вы учитесь
00:11:04
как бы и давайте все удалю
00:11:08
оставлю только дефолт пока мы не знаем
00:11:10
да что мы будем делать в юзер регистре
00:11:12
как и будем менять стоит вопрос какой у
00:11:14
нас state трасс таки то о чем мы должны
00:11:16
с вами подумать как у нас будет
00:11:18
выглядеть стейк для данной страничке
00:11:20
давайте гадать смотреть давайте немножко
00:11:22
по можете нажать на паузу подумать сами
00:11:24
можете даже сами реализовать его а потом
00:11:26
продолжить смотреть видео посмотреть как
00:11:28
сделал это я например есть общее в
00:11:31
регистре много правил там нормализация
00:11:33
тоже самади нормализация но мы пока
00:11:35
пойдем с вами тоже от простого к
00:11:36
сложному и сделаем пока что одну одну
00:11:39
версию резистора нашего которые будут
00:11:41
обслуживанию это вот страничку что мы
00:11:44
здесь видим список пользователей тогда
00:11:49
мы говорим слова список пользователей мы
00:11:51
всегда подразумеваем массив
00:11:52
пользователей массив пользователей то
00:11:54
есть у нас и какие-то объекты
00:11:55
пользователи они сидят в массиве по сути
00:11:59
как бы все вы как бы не совсем все здесь
00:12:03
еще есть schauma кнопочка schauma
00:12:04
показать ещё
00:12:05
показать ещё тогда как или
00:12:08
бизнес-процесс мы должны анализировать
00:12:09
какие бизнес процесса происходит то
00:12:11
здесь показывается часть пользователей
00:12:12
да а мы нажимаем schauma
00:12:14
и к этой части дописываются еще
00:12:16
пользователя массиве уже сидят
00:12:18
пользователи мы нажимаем шоу мы показать
00:12:20
еще еще дописывается пользователя а
00:12:22
сколько сидит тут почему-то 4 а если
00:12:25
нажмем schauma логично что еще четыре
00:12:27
добавится авто нажмешь а ума еще четыре
00:12:30
добавится то есть есть некоторые нет
00:12:32
некоторых как бы размер странички и
00:12:34
условно говоря то есть одновременно мы
00:12:36
видим не всех пользователей а только
00:12:38
часть только одну страницу какую-то
00:12:40
совокупность
00:12:41
здесь размер этой совокупности да судя
00:12:44
по дизайну 4 маккей и вот так вот мы
00:12:47
рассуждаем рассуждаем у каждого пустой
00:12:49
рис каждый пользователь каждого
00:12:50
пользователя есть какой-то там имя
00:12:52
какой-то статус
00:12:54
какой-то город страна и город
00:12:58
почему-то статус почему это имя такое
00:13:02
это имя 1 first name was ней полный или
00:13:05
псевдоним почему-то именно статуса
00:13:08
например там какая-нибудь description
00:13:11
там профиль bout или там это все нужно
00:13:15
говорить здесь мы видим дизайн мы как
00:13:18
программисты общаемся с заказчиком до
00:13:21
либо с менеджером который посредником
00:13:23
между нами там либо steam лидом либо с
00:13:26
бизнес-аналитиком там зависимости какая
00:13:28
структура в компании мы должны понимать
00:13:32
бизнес домен бизнес область то есть
00:13:35
заказчик нам должен 1 1 авто за это все
00:13:39
прописано заказчик на простите за кашель
00:13:41
и буду стараться отворачиваться заказчик
00:13:43
должен нам рассказать что есть что-то
00:13:48
чтобы мы могли до говорить на одном
00:13:50
языке есть очень-очень крутая такая
00:13:53
штука ddd
00:13:54
домен driven предмет ориентированы домен
00:13:58
driven design domain-driven design по
00:14:01
погуглить эту тему очень рекомендую к
00:14:03
прочтению книгу на каком в этом язык и
00:14:06
не приводился в примере
00:14:07
реке vans это классика автором автор
00:14:11
вообще даже этой концепцией если не
00:14:12
ошибаюсь я рекомендую прочитать особенно
00:14:16
если вы немножко глубже понимаете чем
00:14:19
там просто junior новичок а у вас там
00:14:20
просто вы уже с опытом хотите вытащить
00:14:22
серяк смотрите мой курс изучить этот эту
00:14:26
книгу почитаете так по диагонали в
00:14:28
ознакомительном первый раз режиме потому
00:14:29
что понятие полностью со старта у вас не
00:14:31
получится на знакомьтесь очень хороший
00:14:33
концепции лекции вы просите статьи так
00:14:36
вот мы должны общаться на одном языке
00:14:39
заказчик да человек из из жизни которому
00:14:43
мы пишем автоматизацию программу и
00:14:44
программисты вашем случае соцсети нашем
00:14:47
случае я есть заказчик якобы говорю это
00:14:49
статус поэтому это статус ok давайте
00:14:51
проектировать наш state то есть у нас
00:14:53
есть не посты у нас есть в стоите users
00:14:56
пользователь users каждый users имеет
00:14:59
едешь куда ребят давайте договоримся с
00:15:01
вами всегда queen у вас какие-то объекту
00:15:03
объекта всегда есть едешь к особенно
00:15:07
если этот объект массив объектов всегда
00:15:09
есть регишка всегда
00:15:10
откуда эта я диска будет браться на
00:15:12
самом деле она всегда будет браться
00:15:13
сервера то есть на сервере на самом деле
00:15:16
будут создаваться сущности
00:15:18
сущности на сервере они в базе данных
00:15:21
хранятся и у них там на сервере есть
00:15:22
идентификатор к нам он будет приходить
00:15:25
потом по api жки будет приходить по
00:15:27
через аят запросы так вот у нас у юзера
00:15:31
и сойди есть полный на завоевав умное полное имя
00:15:35
например дмитрия сейчас что там ещё есть
00:15:38
статус статус так давайте кавычки для
00:15:46
начала динар на использовать а им обоз и
00:15:49
есть страна и город давайте давайте
00:15:56
назовем это
00:15:57
locations макияж он и давайте назовем от
00:16:01
zend объектом city
00:16:04
минск coutry
00:16:08
страна беларусь вложенный под объект
00:16:13
будет
00:16:14
то все дальше давайте продублируем
00:16:17
таких-то сделаем парочку объектов чтобы
00:16:21
давайте сделаем маску
00:16:26
раша сделаем юкрейн
00:16:33
тиф сделаем разными наша саша саша
00:16:42
эндрю статусами босс аима басту все
00:16:47
боссы все мы равны все мы братья трович
00:16:50
погнали и айдишники то есть сюда мы
00:16:53
таким образом как бы примерно
00:16:54
спроектировали наш state
00:16:56
но как бы мы спроектировали отображению
00:16:58
таких чувачков а вот это вот кнопку то
00:17:01
есть мы ее нажимаем и что-то там
00:17:02
дописывается еще ждет описывается еще
00:17:05
есть какой-то размер до страничке я
00:17:08
говорил президент то есть размер
00:17:09
страничке какие данные мы должны
00:17:11
опираться мы почему-то должны иметь 4
00:17:13
отобразить а потом при нажатии почему ты
00:17:15
еще четыре тогда мы должны с вами это
00:17:17
вот мышления вот алгоритмы которую вам
00:17:19
нужны вам не нужен и алгоритмы томку
00:17:21
export вам не нужен
00:17:23
алгоритме например бинарного поиска вот
00:17:25
и вся чушь не нужно adax 1 и когда
00:17:27
джуниора хотите хотите к бульона в лица
00:17:31
в тему вам алгоритмы нужны мышления то
00:17:33
есть как живет страничка что там
00:17:34
происходит это элементарно до
00:17:36
проектировать как state страничка гугла
00:17:38
попробуйте спроектировать стоит для вот
00:17:40
это вот странички поиска что там как то
00:17:42
зайдите в кого-нибудь интернет-магазин
00:17:44
посмотрите как он там работает подумать
00:17:46
о какой стоит там для этой страничке
00:17:48
зайдите на встречку лаги на какой state
00:17:50
там откройте телеграммы какой state там
00:17:53
продумываете этот стоит это есть мы
00:17:55
мышление едете в автобусе в дороге
00:17:57
думайте остыть и стоит первично его и
00:18:00
вторичен но пока не буду усложнять вам
00:18:03
задачу и кнопка шоу мы поговорим об этом
00:18:05
в следующих выпусках чуть-чуть попозже
00:18:07
когда уже непосредственно будем делать
00:18:09
запросы на сервак там и усложним наш
00:18:12
state а пока оставим стоит как есть то
00:18:13
есть не обращаем внимание на эту кнопку
00:18:15
для достаточно все спицы пользователей
00:18:17
окей список пользователей так ребята еще
00:18:20
важный момент окей и не шил стоит список
00:18:23
пользователей но на самом-то деле это
00:18:25
череда режиссер продумать что у нас
00:18:27
вредил саре будет какие у нас
00:18:29
экшены могут быть то есть что у нас
00:18:31
такие действия могут быть со стороны
00:18:33
пользователя чтобы мы там action наш
00:18:35
state модифицировали помню что редис эта
00:18:37
функция которая через которую идет
00:18:39
модификация state а вот какие экшена у
00:18:42
нас есть могут быть ну как бы никаких
00:18:45
тут нет кнопочки удалить on есть follow
00:18:47
анфалов добавить друзья да добавить
00:18:50
друзья удалить из друзей это сейчас мы
00:18:53
реализуем обязательно удалите добавите к
00:18:56
какой важный момент мог кого-то follow
00:18:58
кого-то on full как мы это на юго и
00:19:00
отобразим пусть нам нужна какая-то
00:19:01
булевы флаг трус да нет да нет кто то
00:19:05
нам нужно об этом сказать мы друзья или
00:19:07
не друзья когда я буду отрисовывать этих
00:19:09
до список этих пользователей друзья
00:19:11
пробегаю здесь по пользователям и должен
00:19:13
какой-то взять у них флаг и отобразить
00:19:15
по а ты мой друг или не друг друзья в
00:19:17
этом объекте должна быть защита
00:19:18
информация давайте follow it то есть
00:19:22
текущий юзер follow it или не фолловите
00:19:25
этого юзера против холст текущий
00:19:27
зарегистрированный залогинены
00:19:29
пользователь дать и делаем true
00:19:33
давайте
00:19:34
rain falls тогда данных нам не хватает
00:19:38
ему так вот анализируем а как же мы
00:19:39
покажем как это покажем если нас данные
00:19:42
стоите чтобы мы могли это показать окей
00:19:44
есть соответственно вот правильно да я
00:19:46
отвлекся на теплом полу соответственно
00:19:48
есть кнопки можем нажимать везде где нас
00:19:49
есть кнопка нас по сути кнопки являются
00:19:51
инициаторами экшенов каких-то то есть
00:19:53
раз есть кнопки какие то значит
00:19:55
намерение пользователя есть то есть я
00:19:57
напоминаю ой ой развод он ей в ее
00:20:04
промассировать по кнопке у нас из юар
00:20:06
есть б л л ю ай то с чем взаимодействует
00:20:10
пользователь и мы помним что я и на
00:20:14
самом деле перерисовывается полностью по
00:20:16
флаг ссср ты архитектуре от значения
00:20:19
здесь соответственно если пользователь
00:20:21
что-то хочет сделать нажимает на кнопку
00:20:22
грубо гриан follow нажимая там fallout
00:20:26
есть кнопка должна стать follow давно мы
00:20:27
помним что follow кнопка не может она
00:20:29
стать follow
00:20:30
просто потому что пользователю нажал вот
00:20:32
здесь ю ай может меняться тока от
00:20:35
измененного стэйта стоит извинился
00:20:37
изменился ей соответственно пользователь
00:20:39
нажимает он full мы dispacci dispacci
00:20:43
dispacci
00:20:45
какой-то экшен стоит reviews are этот
00:20:51
экшен обрабатывает стоит меняется
00:20:53
соответственно идёт перерисовка и кнопка
00:20:55
нфау меняется nofollow
00:20:56
да вот такой вот круговорот это
00:20:59
стандартный поток данных поток экшенов и
00:21:03
данных и перерисовки
00:21:04
соответственно нам надо все 2 action or
00:21:06
follow me follow мы можем on фолить
00:21:08
кого-то можем фолловить давайте action
00:21:10
крейтер создадим follow action creator
00:21:15
давайте начнем потихоньку сокращать
00:21:17
action crazy daisy action creader follow
00:21:20
action криттер тип follow
00:21:24
follow потом у нас будет on full action
00:21:27
крейтер on follow action трейдер тип
00:21:36
будет on follow follow in full of sin 2
00:21:40
кнопочки follow анна follow давайте эти
00:21:42
две константы создадим fallout follow on
00:21:53
follow follow on follow отлично
00:22:00
странно почему здесь вы я об этом вам не
00:22:04
рассказывала рассказывал сейчас посмотрю
00:22:06
другой рядился грани раскола до расскажу
00:22:10
вам о том чтобы не мешать сюда follow on
00:22:12
full of и так и вам новые вещи рассказал
00:22:14
follow on show on solo упростить
00:22:18
единственным on full и так follow on
00:22:21
follow то есть все
00:22:25
экшена 2 экшн экшн крейтер функция
00:22:28
чистая функция опять же action creator
00:22:31
чистая функция которая возвращает экшн
00:22:34
экшн трейдер формируется экс
00:22:37
возвращается достаточно когда action к
00:22:40
нам придет для себя вредил сэр такой
00:22:42
экшен придет огрызки по follow мы будем
00:22:44
знать что нам делать как на менять state
00:22:46
давайте попробуем как бы попробовать так
00:22:48
что ни чего не хватает в этом экшене
00:22:50
давайте попробуем разобраться давайте
00:22:53
скажем фэйс кейс если вот наш будет этот
00:22:57
равен follow the тогда мы тогда мы
00:23:00
должны взять
00:23:03
какого-то пользователя этого массива
00:23:06
изменить ему спал ярослав половинка вот
00:23:08
значит он был фолз на чем должны взять
00:23:10
например 1 пользователь и ему сделать
00:23:11
труб или 3 пользователя какого какого
00:23:15
пользователя взять чтобы мы как у какого
00:23:16
пользователя взять чтобы модифицировать
00:23:17
стоит правильно модифицировать стоит
00:23:20
какого пользователя нужно взять ну
00:23:23
какого фиг его знает
00:23:25
да фиг его знает то есть не хватает
00:23:27
данных каких-то в экшене хватает данных
00:23:29
action неполны чтобы зафолловить кого-то
00:23:32
нам нужно знать кого именно юзер айди
00:23:33
нам должен прийти что юзера идет куда мы
00:23:36
его возьмем из вершин трейдерам придет
00:23:38
как параметр и здесь тоже самое в экшн
00:23:41
трейдерам придет как параметр
00:23:42
соответственно у нас в сша будет в
00:23:44
экшене будет сидеть кроме типа еще и
00:23:45
значение юзера которого нам надо
00:23:47
зафолловить
00:23:48
анфолловить
00:23:50
поэтому вот здесь мы берем кейс наш
00:23:53
follow и кейс наш on follow и каким-то
00:24:00
образом меняем пользователей находим
00:24:02
поэтому поедишь ки и возвращаем обновлен
00:24:05
массив но давайте поговорим каким
00:24:07
образом мы помним что мы должны
00:24:08
модифицировать только копию объекта
00:24:11
только копию объекта если тип follow мы
00:24:15
должны взять в нашем стоите users of
00:24:18
пробежаться по массиву внутрь этого
00:24:20
массива изменить конкретного
00:24:21
пользователя если у нас такая users это
00:24:24
массив массив это объект массив объектов
00:24:27
если мы собираемся менять массив
00:24:30
объектов объекты внутри массивность
00:24:32
объект в объекте то мы должны
00:24:33
копировать делать полную копию всей
00:24:36
иерархии те
00:24:38
йерархии то есть если у нас есть если у
00:24:40
нас есть объект
00:24:41
а в нем другой объект посылки до массив
00:24:46
а в этом массиве сидят другие объекты
00:24:50
если мы собираемся поднять этот объект
00:24:52
какой то мы должны обязательно дать
00:24:55
понять что то есть мы не можем поменять
00:24:56
его просто так мы должны его поменять и
00:25:00
поменять еще вот этот массив тоже мы
00:25:02
должны скопировать и естественно
00:25:03
скопировать и этот верхний объект
00:25:05
давайте это сделает это первым делом и
00:25:07
копируем весь state вот там стоит
00:25:09
приходит потому что фолловинг кого-то мы
00:25:12
говорим лет в одессе задам копию сайта
00:25:14
лет стоит копия мы создаем копию самого
00:25:19
сайта
00:25:21
ok дальше мы знаем что мы должны создать
00:25:24
копию массива потому что мы собираемся
00:25:26
внутри массива кого то менять значит сам
00:25:27
массив тоже должен измениться ok ok ok
00:25:33
ok users говорим берем старых делаем
00:25:37
копию массива state users вот так вот то
00:25:43
есть мы скопировали сейчас стоит и
00:25:45
внутренность users но нам еще надо
00:25:47
поменять внутри users нужного
00:25:49
нужно нужно найти нужно найти элемент и
00:25:53
его поменять так вот открываю вам
00:25:56
интересный интересный момент как нам
00:25:58
можно сделать еще копию массива по
00:26:01
другому
00:26:02
если нам не нужно менять элемент внутри
00:26:03
массива нужно например добавить новый
00:26:06
элемент как мы делали с вами данный
00:26:07
пример вот здесь смотрите profile
00:26:08
регистр в посте
00:26:10
то мы с вами используем такой момент и
00:26:12
например через запятую и дописываем
00:26:13
что-то новое без проблем работает на ура
00:26:16
но если нам надо не просто скопировать
00:26:18
массив объектов а один из объектов
00:26:22
поменять то нам такой вариант не очень
00:26:24
подходит такой вариант нам подходит нам
00:26:26
идеально подходит вариант с маком map
00:26:29
что делает возвращает новый массив на
00:26:32
основе старого массива то есть у нас
00:26:34
есть старые users а мы говорим вот юзер
00:26:36
приходит сюда и мы этот же юзер
00:26:38
возвращаем вот эти записи 2 вот эти
00:26:42
записи
00:26:43
вот так вот сделаю они идентичны вкратце
00:26:49
повторюсь а вы уже там пересматриваете
00:26:50
по несколько раз и запоминайте
00:26:53
мы говорим мы пробегаемся по массиву
00:26:55
users of map создает новый массив
00:26:57
элементами которого будут сидеть все те
00:27:00
же самые users и то есть юзер приходит
00:27:02
внутри вот сюда в call back и
00:27:03
возвращается обратно эти две записи
00:27:06
идентичны по своему результату работы но
00:27:09
нам-то надо не всех юзеров вернуть
00:27:12
нетронутыми нам-то надо одного юзера
00:27:15
изменить точность юзер массив юзер нам
00:27:21
не просто скопировать третьих юзера
00:27:23
одного из юзеров изменить а так-то мы
00:27:25
изменить не можем на надо создать копию
00:27:27
для этого измененного юзера и его именно
00:27:29
изменить чтобы этого юзера не трогать а
00:27:31
изменить именно копию есть нам надо
00:27:32
копию делать только того объекта который
00:27:34
мы меняем остальные объекты можно не
00:27:36
делать копию зачем да зачем
00:27:38
когда мы его не меняем мы это говорили
00:27:41
сами на предыдущих в предыдущих уроках
00:27:44
то есть то мы экономим память нам не
00:27:46
нужно копировать все только то что мы
00:27:48
меняем так вот как это сделать здесь
00:27:53
давайте возвращать 20 во-первых эту
00:27:55
запись и делаем с фигурными скобками
00:27:58
закомментирую сделаем запись с фигурными
00:28:01
скобками признаки напишу мире туры
00:28:07
мы берем пользователя на входе и
00:28:08
возвращаем его же но мы должны вернуть
00:28:11
его же если он не поменялся а если его
00:28:15
нужно поменять грубо горя зафолловить
00:28:17
там и тогда
00:28:18
меняем false на true то есть мы должны
00:28:21
взять но так как мы поменять не будет да
00:28:23
смотрите как киев юзер пользователя есть
00:28:26
аиде
00:28:27
то есть мы ведь фолловим конкретного
00:28:29
пользователя пользователя есть леди если
00:28:31
мы хотим зафолловить именно этого
00:28:33
пользователя то есть если очередной юзер
00:28:36
который приходит вот сюда в этот call
00:28:38
back благодаря map ума пробегает по себе
00:28:40
озером если айди этого пробегаем ого
00:28:42
юзера равен тому
00:28:43
айдишник у которых зафолловить а он
00:28:45
сидит в юзера иди в экшене
00:28:47
напоминаем экшеном и запихнули чего как
00:28:50
тронут зафолловить я на фолловить то
00:28:52
тогда мы должны получается у этого
00:28:54
пользователя изменения сделать мы должны
00:28:56
фолловить поменять но true
00:28:58
но так как мы не можем пользователя
00:28:59
изменить у нас имеют обильность
00:29:02
неизменяемость этот пользуйте мы должны
00:29:05
скопировать пользователя и вернуть копию
00:29:07
не этого пользователя retour new а копию
00:29:09
делается легко то есть там на доска
00:29:11
делать копию конкретного объекта
00:29:12
простого объекта у которого она у
00:29:15
которого грубо говоря есть подобъект
00:29:17
сложно так вложенный подобъект не
00:29:18
меняется вложенный подобъект мы не
00:29:20
копируем место и оставляем поверхностное
00:29:22
копирование то есть мы возвращаем копию
00:29:25
у пользователя но нам надо в нем только
00:29:28
поменять фолловить на труп фолловить
00:29:30
натру
00:29:31
ребят если вам это туга то тогда
00:29:33
пересматриваете видео про полное
00:29:36
копирование почему-то на канале моем
00:29:38
просмотров очень мало полное копирование
00:29:45
путь самурая самурая часа глянут самурая
00:29:52
полное копирование react rect ну где то
00:30:02
пропал ну-ка пятном мало просмотров
00:30:04
плейлисты открою мало просмотров по
00:30:06
полному копируют вы как бы я предполагаю
00:30:08
что каких-то смотрит идея канала
00:30:10
просмотров из меньше чем у следующего
00:30:12
видео из меньше чем вот делаем корпуса
00:30:15
ты вот копия глубокого с поверхность
00:30:17
тут гораздо больше просмотров чем здесь
00:30:20
почему потому что наверное вы пропустили
00:30:22
вам кажется это типа понятный но если
00:30:24
вам не понятно возвращаетесь и смотрите
00:30:29
так соответственно мы делаем копию
00:30:32
fall-winter все портрета если едешь к
00:30:35
совпадают то мы возвращаем копию если
00:30:37
одежка не совпадают и возвращаем тоже
00:30:38
сам объект нам его менять не надо все
00:30:40
соответственно таким образом мы делаем с
00:30:43
вами новый объект формируем стоит копи
00:30:45
нам не нужна переменная мы сразу делаем
00:30:47
return red упасть мы возвращаем если
00:30:50
нужно кого-то зафолловить мы возвращаем
00:30:51
копию всего стэйта
00:30:52
в этом стоять и делаем копию users of и
00:30:55
конкретно мою зерна которую она поменять
00:30:57
зафолловить тоже делаем копию
00:30:59
аналогичная ситуация сам follow
00:31:01
аналогичная ситуация с она follow return
00:31:07
state state только меняем follow it
00:31:10
falls на тру на фолс потому что мы
00:31:13
анфолловинг так если все написано
00:31:16
правильно то мы будем кликать кнопочки и
00:31:17
она будет фолловить от холода и встречи
00:31:20
к темам и даже как бы вот неплохая ты
00:31:22
даже у нас uiaa нет мы еще даже ничего
00:31:23
не на разметку некую не сделали но мы с
00:31:25
вами проектируем режиссер проектируем
00:31:28
reviews are логику был уровень уже 31
00:31:32
минута мы только начали божиим но но он
00:31:38
будет разбито урок на 2 упал по части
00:31:41
поэтому вы можете будете потом на
00:31:43
половине остановиться и продолжить
00:31:44
смотреть когда мы будем разрабатывать
00:31:45
юваль самом деле дивов осталось
00:31:47
чуть-чуть окей к полу on follow
00:31:50
бизнес-логика
00:31:51
зафолловить онколог таки еще действия
00:31:53
есть еще действия этой страничке но все
00:31:55
кнопки и столько это эту кнопку пока
00:31:56
один аренда пока
00:31:57
еще но давайте совесть еще выучим один
00:32:00
экшен который у нас будет постоянно
00:32:02
постоянно маячить у нас на самом-то деле
00:32:06
массив изначально пустой
00:32:08
тайна у нас откуда у нас используемых за
00:32:11
хардкорен о самом деле этих пользователю
00:32:13
нас нет массив будет пустой то есть мы
00:32:15
их как то получим сервака
00:32:17
а потом нам нужно будет как-то их
00:32:19
засунуть в этот стоит наш
00:32:21
нам нужен экшн который будет с этот
00:32:24
юзеров устанавливать юзеров назовем его
00:32:28
set you others action трейдер users
00:32:34
откуда-то придут юзеры мы скажем сет с
00:32:39
users откуда-то не придут пока не знаю
00:32:42
откуда вот они в экшене будут users
00:32:45
какую-то мы возьмем данную сервака мы
00:32:47
знаем это домой возьмем сервака из-за
00:32:49
сеты state установим state that users
00:32:53
давайте создадим такой
00:32:56
action set users that users так вот сет
00:33:02
установить пользователей сет users
00:33:05
action крейтер
00:33:06
то есть если вдруг т.е. у нас есть форум
00:33:08
и мы умеем фолловить мы умеем от
00:33:10
фолловить и наш режиссер еще умеет кейс
00:33:13
сет юзер с and users
00:33:16
откуда-то придут пользователя и я должен
00:33:19
буду взять старый state взять старости
00:33:23
yt взять пользователей которые там были
00:33:25
и передать или этих теме пользователями
00:33:27
которые пришли ко мне в вершине users то
00:33:30
есть экшене сидят юзеры пользователь я
00:33:32
их беру из этого экшена и за собачьего
00:33:35
of state прям как есть перезать и роясь
00:33:37
весь массив что там был users перри
00:33:39
затираю этими пользователями которые там
00:33:41
ко мне пришли хотя в будущем мы будем до
00:33:43
сет users а у нас там будет мы
00:33:44
дописывать будем скажем так давайте
00:33:46
попробуем записать это надо писать мы
00:33:49
скажем вообще то так то есть мы говорим
00:33:50
мы хотим вообще-то говоря мы хотим взять
00:33:53
и стэйта старых юзеров state users старк
00:33:57
юзеров которые там были создать копию до
00:34:01
массива и дописать к ним юзеров которые
00:34:04
пришли из экшена так как юзер не один а
00:34:07
их много массив то мы тоже делаем спрайт
00:34:09
оператор то есть мы склеиваем 2
00:34:11
сила те которые были стойте и те которые
00:34:13
пришли в пшене круто круто все стоит
00:34:18
оставляем пустым пока пустым оставим
00:34:20
потом это скопируем якобы сымитировав
00:34:23
запрос от сервера то есть все у нас как
00:34:27
бы ничего нет все наш принципе бизнеса
00:34:29
уровень готов наш бизнес уровень готов
00:34:32
мы умеем мы умеем фолловить анфолловить
00:34:36
и устанавливать пользователей все супер
00:34:38
давайте попробуем тогда теперь накрутить
00:34:40
ю ай по-быстренькому создать life
00:34:42
компоненте который будет получать данные
00:34:44
стэйта и с ними как то работать давайте
00:34:49
сразу знаете что сделаем ну давайте
00:34:52
создадим
00:34:54
дайте них контейнерную компоненту так и
00:34:57
по факту нам надо users контейнер нам то
00:35:00
данные нужны stora из торы и стоит а то
00:35:03
бишь контейнер давайте дадим контейнер
00:35:06
на компоненты которая будет наша
00:35:07
презентационные компоненты users чистую
00:35:09
функцию
00:35:10
снабжать нужными проб сами для этого для
00:35:14
этого создаем users а ее как ты так
00:35:16
сделал для этого создаем users контейнер
00:35:21
создаем его в той же папке где и лежит у
00:35:25
нас users пока мы делаем потому такая
00:35:27
структура потом про структуру еще
00:35:28
немножко поговорим создаем контейнерную
00:35:31
компоненту users контейнер users
00:35:36
контейнер добавить то есть нам нужно
00:35:39
users can таймер контейнер да я
00:35:44
компонента которая все что будет делать
00:35:46
будет она уже уруру мы не создаем users
00:35:50
контейнер давайте вспомним напомню вам
00:35:51
что мы на самом деле мы создаем
00:35:53
контейнер на компоненту с помощью
00:35:55
функции connect пусть мы станем
00:35:58
наших юзеров нашего функциональную
00:36:02
компоненту мы ее к нефти с помощью
00:36:05
функции connect которые вам приходят из
00:36:07
библиотеки react redex и этот ряд
00:36:11
connect предпринимает где функции map
00:36:13
map state ту props
00:36:16
и март
00:36:21
dispatch ты просто новый проект
00:36:23
портировала какие-то вещи из непонятно откуда этого
00:36:26
делать не надо этого делать нам эти две
00:36:28
функции и функции которые мы создаём
00:36:31
обстоит и проб след напоминаем обстоит
00:36:33
проб функция которая принимает вей state
00:36:35
целиком глобальный стоит всего
00:36:37
приложения и возвращает объект только с
00:36:41
теми данными которые нам реально estate
00:36:43
и нужны нам не стоит и нужны какие
00:36:45
данные список пользователей
00:36:46
он сидит у стоит где он сидит такие
00:36:50
ветки у нашего стоит и есть давайте
00:36:51
напомню вам что когда мы создаем с вами
00:36:53
редакторский stor редакторский стороны
00:36:55
создавали раньше ручками его оба теперь
00:36:57
мы соберем редакция с той стороны - у
00:36:59
даем с помощью вы простите
00:37:02
юзер свой редактор вот он мы задаем с
00:37:05
помощью функций great star creed стороны
00:37:09
отдаем за комбайне ты и режиссеры именно
00:37:12
вот эти вот комбайн рядился именно вот это вот и
00:37:14
есть те ветки нашего глобального стоит и
00:37:16
которые в нем будут profile 5 25 бар и
00:37:19
мы еще добавим сюда users edge скажем
00:37:24
users пейдж ты будешь обслуживаться юзер
00:37:28
users регистром импортировалось все same
00:37:34
users печь все теперь у нас в стойке
00:37:37
будет этот users пейдж так как мы
00:37:39
зарегистрировали режиссер скажем так и у
00:37:42
нас теперь мы можем взять users пейдж и
00:37:44
взять users все нас теперь в ммо с
00:37:47
помощью map стоит от drops a придет в
00:37:50
функциональную компоненту в пробках
00:37:52
будет сидеть вот это вот свойство users
00:37:54
которое
00:37:55
значением которого будут с пользователей
00:37:57
estate а второй функции map где спать
00:38:00
что props это вторая функция которая
00:38:03
служит для того чтобы передавать
00:38:06
дочерние презентационной компоненте
00:38:08
через пропсы калмыки какие-то функции
00:38:11
которые будут которые будут как вы
00:38:15
привели сюда компонента может вызывать
00:38:17
сюда поэтому приходит dispatch так как
00:38:21
по сути call back of предназначение call
00:38:23
back of общаться со стороны состоит там
00:38:25
то есть у нас есть ли dax дай картинку
00:38:27
ту рисовал то есть react redex и чувачок
00:38:33
который в презентационных компонентах
00:38:35
скажем так в тупых
00:38:36
что-то нажимает на кнопочку на кнопочку
00:38:38
близнеца для компонента это этот посыл
00:38:41
передает помощью калум-бека переданного
00:38:43
ей извне внешне компоненте контейнерной
00:38:46
компоненте контейнерная компонента вот
00:38:49
могли спать что прав с она уже будет
00:38:50
общаться с и с этим сын dispacci
00:38:53
какой-то экшен сюда но сама презентация
00:38:55
компонента понятия не имеет про dispacci
00:38:57
на просто вызывает callback call back
00:38:59
идет к родительской по понятия
00:39:01
родительская контейнер на особенно с
00:39:03
помощью коннекта она уже нужно для того
00:39:05
чтобы делать нормальный полноценный
00:39:07
dispatch так вот называемый to me follow
00:39:13
follow обязательно играйте кого-то
00:39:16
зафолловить эта функция которая эта
00:39:21
функция которая будет dispatch action
00:39:26
crater вызываем action трейдер называем
00:39:30
follow action криттер и говорим какого
00:39:33
пользователя нужно за фолловить
00:39:34
напоминаю что мы dispacci мне action
00:39:36
трейдер мы dispatch им результат работы
00:39:39
экшен крейцером его вызываем action
00:39:41
крейтер возвращает нам action то есть мы
00:39:42
dispatch им всегда экшены action это
00:39:44
простой объект который как минимум
00:39:47
должен содержать тип все здорово
00:39:50
аналогично мы должны уметь зоан школы
00:39:53
вич зафолловить человека какого-либо on
00:39:57
follow action трейдер in certain и еще у
00:40:01
нас какой-то экшен с заседатель юзеров
00:40:03
то есть мы должны как-то установить
00:40:05
пользователях и и сначала нет а мы их
00:40:07
можем установить цвет users предположим
00:40:10
что это тоже намерение как бы извне сет
00:40:13
users users и объясню что имею ввиду
00:40:18
users пейдж users пейдж users
00:40:23
простите сет users action трейдер и
00:40:27
передаем сюда юзеров что имею виду когда
00:40:30
говорю заседать юзеров и какое-то
00:40:32
действие и звене вы смотрите по сути мы
00:40:34
нажимаем на кнопки это понятно
00:40:35
пользователь да как бы dispatched
00:40:37
какие-то пожелания свои но отобразить
00:40:39
этих пользователей пользователь разве
00:40:41
что dispatched но фактически да он не
00:40:43
нажимает не нажимает никакую
00:40:45
попку типа загрузим не пользователей да
00:40:47
как правило мы попадаем на страничку и
00:40:49
нам пользователь отображаются сразу но
00:40:51
по факту
00:40:52
пользователь ведь зашел на эту страничку
00:40:54
как бы сам факт того что он оказался на
00:40:56
этой страничке как бы считаете что он
00:40:58
как бы нажал кнопку говорит загрузим и
00:41:00
для этой странички пользователей
00:41:01
политика я штука это как бы тоже
00:41:05
dispatch экшена своеобразный то есть
00:41:07
человек попадает на страничку страничка
00:41:10
это берет откуда-то пользователей и
00:41:12
данный пример сама презентационная
00:41:14
компонента берет входит этих
00:41:15
пользователей пока так будем мыслить и
00:41:17
говорить надо этих я не могу этих
00:41:19
пользователей показать я ищу лишь
00:41:20
презентационная компонента я должен их
00:41:21
за dispatch стоит а потом они придут ко
00:41:24
мне я их от рисует соответственно нужен
00:41:25
этот вот action crater установить
00:41:27
пользователь который как бы извне будет
00:41:29
устанавливаться все наши компоненты
00:41:32
получает необходимые call бейки которой
00:41:35
она может вызвать наш компонент получать
00:41:36
необходимые объекты users
00:41:38
давайте отрисую бы в компоненте users
00:41:40
сейчас я проверю что я в оп оп и
00:41:42
компоненте
00:41:43
что его папой components users контейнер
00:41:46
заезжал дальше столько я им за in search
00:41:48
у сделай импорт удалю как-то мне
00:41:50
советовали как удалить этот импорт
00:41:52
горячими клавишами remove any
00:41:56
им про почему здесь не прописываются вот
00:41:58
эти горячие горячие клавиши как же там
00:42:01
было
00:42:04
не помню не помню не помню
00:42:06
спешит делиться как удалить можно как
00:42:09
удалить окей users контейнера
00:42:12
отдельного компонента оборачивает
00:42:15
презентационный у компонента все окей
00:42:18
дать проверим что по-крайней мере она
00:42:19
работает и ничего не падает лидерство и
00:42:22
убыхи то есть ничего не падает из
00:42:23
цепочки вызовов все сделано силки
00:42:26
давайте здесь в пробках мы знаем что к
00:42:29
нам приходят пользователи давайте их от
00:42:30
рисуем давайте скажем фигурные скобки
00:42:33
поставим напишем props users почему
00:42:37
напоминаю в пробках именно users будет
00:42:39
свойства почему потому что users
00:42:42
контейнер ну здесь map стоит и проб саму
00:42:44
вернули именно users
00:42:45
именно по этой причине там будет сидеть
00:42:47
users и мы говорим хотим про те права
00:42:51
пица
00:42:52
и для каждого пользователя вернуть
00:42:56
для каждого пользователя вернуть девку
00:43:00
девку для каждого пользователя вернуть
00:43:03
девку сразу к этой диски когда у нас map
00:43:04
когда у нас массив
00:43:05
сразу не забываем цеплять кей ключ берем
00:43:08
пользователя едешь куда ключом всегда
00:43:10
делаем пользовательские иди дальше
00:43:13
дальше дальше дальше что мы должны
00:43:16
отрисовать давайте смотрим
00:43:17
аватарка кнопка имя
00:43:21
бла-бла-бла-бла-бла ok аватарка давайте
00:43:24
сделаем так давайте сделаем в диске
00:43:26
сделаем 2 показ по на если сделаю так
00:43:28
чтобы минимально минимальное писать css
00:43:34
код 2 сп она в спальне то есть банан
00:43:37
потому что этот строчный элемент
00:43:39
строчный то есть занимает по ширине по
00:43:41
содержимому и это по содержимому
00:43:44
а внутри два блочных чтобы div div
00:43:46
отдать один подадим выстроилась 1а дивка
00:43:49
будет для картинки имидж другая дивка
00:43:54
будет для кнопки батон follow напиши
00:44:00
пока что дальше дальше дальше здесь span
00:44:04
span у нас будет 1 2 2 спа на один для
00:44:08
вот этого кабака ломки другой для вот
00:44:10
этой колонке это такое в некоторой
00:44:12
степени простите
00:44:15
верстать или код пока чтобы не
00:44:18
заморачиваться по seas с а будет здесь у
00:44:21
нас две девки 1 2 div умножить на 2
00:44:26
и здесь та же самая тиф умножить на 2
00:44:30
div умножить на 2 табуляция в этот div я
00:44:33
запишу имя пользователя ведь сразу
00:44:35
запишу юзер full name
00:44:39
резерв умные до напоминаю что юзер fun &
00:44:41
music среди у сыр вот full name айди
00:44:46
фолловит true false true false статус
00:44:49
vacations сити давайте это все дело
00:44:52
применим простите статус locations city
00:44:56
users full name
00:44:59
дальше на статус users юзер простите
00:45:03
статус давайте
00:45:06
со старта раз комментируют эти вот users
00:45:08
of юзеров отсюда
00:45:10
чтобы будешь что-то могли увидеть с вами
00:45:14
так то есть у нас есть
00:45:17
full name статус здесь нас должен быть
00:45:19
город юзер locations локэйшн всё ти хотя
00:45:29
правильнее было бы сити name конечно то
00:45:31
что у города должен быть айдишники пока
00:45:33
ладно упростим задачку control-d
00:45:36
city.com 3 только наоборот поменять их
00:45:39
местами надо две строчки сейчас вообще
00:45:42
не можешь так с можно control alt и
00:45:44
стрелка вниз не применяется тогда
00:45:46
сделаем так он трава и велит это девку
00:45:49
дали
00:45:51
картинки а картинка да у нас есть в
00:45:53
какую-то картинку аватар пользователя мы
00:45:55
должны показывать где его взять не
00:45:56
хватает до вреди уср этих данных не
00:45:58
хватает давайте аватар фото мы даем фото
00:46:01
фото url url на картинку пользователя
00:46:06
давайте щас для dota сейчас в интернете
00:46:08
как всегда найдем какого-нибудь
00:46:09
пользователя крутого например дмитрий
00:46:12
дмитрий а там дмитрий картин чем возьмем
00:46:15
дмитрия какого угодно жмите новоселов
00:46:18
сейчас какого-нибудь выберем о давайте
00:46:20
нагиева копи
00:46:23
имидж адрес проверим там хорошие адрес
00:46:27
нормально так и сейчас но пока у нас и
00:46:31
все у нас все пока будут найди и вы эти
00:46:36
изначально одного объекта продумал
00:46:38
некорректными тирада о не удобно
00:46:40
фиксировать всех остальных так давайте
00:46:44
сейчас переведу на новую строку и здесь
00:46:51
тоже сделаю фото url
00:46:54
фото url
00:46:56
то есть не хватало всех данных дам стоит
00:46:58
не до конца продуман был не до конца
00:47:00
продумано был там не хватает не хватает
00:47:02
всех данных необходимых юар для того
00:47:04
чтобы отрисоваться не теперь вроде
00:47:06
вроде вроде как хватает 3 даже от
00:47:08
рисовалась уже что-то пока мы там бегали
00:47:10
давай checker фото url на ноги его
00:47:12
сделаем ссылочку на дмитрия сделает src
00:47:16
возьмем у пользователя
00:47:18
фото уру уру фотографии раз все здарова
00:47:23
здарова здарова здарова моим зафолловить
00:47:26
саша embas раша мозг ну короче не то по
00:47:27
разметке получилось как я хотел но не
00:47:30
столь важно нам сейчас как внешний вид
00:47:32
этот выглядит хотя 2сп она она дефки
00:47:36
внутри растянулись наверно по полной ну
00:47:38
конечно этот бред так верстать какой же
00:47:40
сделай узкими спадами ну не получилось
00:47:42
ну короче не суть пофиксим пофиксим
00:47:44
позже чаще давайте тема тарки только
00:47:46
уменьшен по размерам давайте быстренько
00:47:49
добавим за импортируем сюда в компоненту
00:47:52
стайлз из той же папке назовем его users
00:47:58
модуль css модульность css и давайте для
00:48:02
картинки для аватара класс классный
00:48:08
возьмем уставилась давайте фото
00:48:12
юзер фото
00:48:14
классно к создадим той создание
00:48:16
во-первых users модуль css альт интер
00:48:18
трейд файл являете как важно видеть и
00:48:20
нажав здесь и из-за смешать files супер
00:48:22
добавим его в git users фото и мы скажем
00:48:27
что там ширина виду будет там 200
00:48:30
пикселей и высота h и f 200 пикселей
00:48:33
хотя картинку мы там загрузили не
00:48:36
прямоугольную будет немножко кривовато
00:48:38
но давайте не 200 пикселей давайте
00:48:40
значит 100 пикселей два раза уменьшен
00:48:43
все уже лучше огонек как-то список
00:48:47
пользователь отображается имя
00:48:49
комментарий
00:48:50
откуда страна какой город почти то же
00:48:53
самое что и здесь ну по сути тоже самое
00:48:54
только не так красива
00:48:58
так ладно сардок более уродливо чем
00:49:00
здесь вывод лего так он и fall out of
00:49:05
all one for хотели кнопки должны быть он
00:49:06
follow какие-то follow это зависит от
00:49:08
чего от того подписанными на
00:49:10
пользователя уже или нет по этому ключу
00:49:13
фуловый трупа ловит фауста и действовать
00:49:15
и персонаж я перенесу
00:49:16
здесь тоже сама follow it falls фолловит
00:49:19
true кого-то
00:49:20
зависимости от fallout 2 эти две кнопки
00:49:22
покажем давайте покажем эти две кнопки
00:49:25
разные кнопки сделаем это таким образом
00:49:29
если у нас и у юзера follow it
00:49:32
если мы подписан на порт пользователи то
00:49:35
мы тогда должны нарисовать тринор на и
00:49:37
выражение нарисовать что либо да не
00:49:39
значит вы тринарная гуглите нарисовать
00:49:41
грубо говоря 23
00:49:42
а иначе нарисовать 44 так у нас не 20
00:49:44
лет сидят две разные кнопки в одном
00:49:46
случае мы будем если мы уже зафолловили
00:49:48
то мы должны показать она follow кнопку
00:49:51
а если мы еще а если не фолловить до
00:49:57
показываем форум на эти две кнопки
00:49:59
вешаем два разных обработчика onclick
00:50:04
номером когда по тебе кликнут callback
00:50:07
функция to date работой и возьми в
00:50:09
пробках и возьми в пробках follow
00:50:13
вызови follow и передай туда одежку
00:50:16
почему в пробках именно follow напоминая
00:50:19
потому что в контейнерной компоненте в
00:50:20
могли спасти пропасть мы сказали follow
00:50:22
функция который принимает
00:50:23
пользовательский чтобы дальше передать
00:50:25
его в экшен creator сформировать экшен с
00:50:27
нужной моей из-за dice почти у пирса
00:50:29
маан follow то же самое она follow так
00:50:34
сейчас чего-то здесь не хватает
00:50:36
пещерных фигурных скобок то же самое сы
00:50:40
делаем сейчас я сделаю так вот перенесу
00:50:43
на новую строку новую строку и это право
00:50:49
оставлю так как есть и то же самое он
00:50:51
клик делаем для 2 кнопки то есть call
00:50:55
back функция горим к кнопка когда по
00:50:56
тебе кликнут вызове нашу анонимную
00:50:58
стрелочные функцию вызове ее и и вызовет
00:51:04
кнопка оба кнопки кликнут а внутри стрелочная
00:51:06
функции у нас идет обращение к
00:51:08
к проб сумму из проб соберется она
00:51:10
follow и придется тоже иди on- follow
00:51:14
прописано full вам подчеркивает почему
00:51:15
то типа не знает она типа опечатка
00:51:18
nofollow такого марсу вообще нет вообще
00:51:21
он follow надо проверить альфу тоже
00:51:23
опечатка типа фулловым фонда глянуть как
00:51:26
отписаться только есть наоборот должно
00:51:28
быть здесь он follow здесь full все
00:51:33
но все ребята теперь то есть если я буду
00:51:36
нажимать follow анфолловите полу анфалов
00:51:38
ул нажму follow vision follow вижу
00:51:43
follow on full
00:51:44
видите как мы с вами подготовили сначала
00:51:46
reviews are at ease of здесь все правила
00:51:51
с помощью экшенов как менять state а
00:51:54
дальше а дальше с вами мы что сделали мы
00:51:57
начали ну закончили сразу мы создали com
00:52:00
презентую компоненту которую сразу
00:52:02
удовлетворю давали творили кубиками и
00:52:04
данными благодаря контейнерной
00:52:06
компоненте то есть контейнер на
00:52:07
компонентов сет опрокинула ну вот у нас
00:52:09
сереньким подсвечивается сет users еще
00:52:11
один момент такой интересный момент то
00:52:13
есть мы с вами договоримся что в
00:52:14
придется ри встретили самом деле нет
00:52:16
данных изначально их просто нет вырезаем
00:52:20
их отсюда нет этих данных
00:52:21
а где же их взять и держите взять
00:52:25
опускай презентационная компонента хоть
00:52:27
и на этого я не должна делать ну пока
00:52:29
что он а у нас это сделает
00:52:30
презентационные компоненты
00:52:33
презентационные компоненты
00:52:37
возьмет и передать
00:52:43
ловкой скажет props сет users перед
00:52:47
отрисовкой возьмет из-за считает юзеров
00:52:52
возьмет этих юзеров вот возьмет массив и
00:52:55
сразу этот массив на фигурные скобки
00:52:58
квадратные скобки поставить
00:52:59
и сразу возьмет этот массив пользователи
00:53:02
и его отправят взят users that users это
00:53:06
в контейнер и компоненте функция которая
00:53:09
dispatched пользователей которые
00:53:11
передали в экшен крейтер формируют экшн
00:53:13
с кем пользователями dispatched общее
00:53:15
100
00:53:16
эти пользователи дописываются вообще
00:53:19
хранишь давайте с увидим какая бага
00:53:21
будет немножко поразмышляем почему так
00:53:22
происходит я думаю это будет очень очень
00:53:24
круто очень очень круто так я так
00:53:26
отформатировал 1 нормальный форматировал
00:53:29
скукожится все эти объекты чтобы место
00:53:31
не занимали и посмотрим подумаем почему
00:53:32
так происходит одиночка про жизненные
00:53:34
как бы такой уже цикл функциональные
00:53:36
компоненты поговорим о и максимум диану
00:53:41
[музыка]
00:53:42
уже видите что происходит максимальное
00:53:45
количество в дейт короче как это фигня
00:53:46
происходит почему так происходит потому
00:53:49
что функциональные компоненты тогда оно
00:53:55
вызывается когда где-то кто-то
00:53:57
отрисовывает ее тык-тык этот где-то
00:54:00
отрисовывается в юзер контейнере и тогда
00:54:02
мы создали контейнерную компоненту она
00:54:04
внутри себя отрисовывает функциональную
00:54:05
компонентом а эту контейнер ну
00:54:08
компонентным отрисовываем впп вот здесь
00:54:10
есть мы тоже контейнер контейнер на и
00:54:12
отрисовывает обычных пользователей и
00:54:13
обычные пользователи так антея
00:54:15
функциональных компонентов функция
00:54:17
просто вызывается
00:54:18
и возвращается gsx но функции это
00:54:20
вызывается но она она возвращает же
00:54:23
стыдно перед возвратом джей секса она
00:54:25
отправляет state потом это важно важно
00:54:27
важная проблем когда такую ошибку
00:54:29
которого вы едите вы будете понимать
00:54:31
максим апдейт эпоксиды то есть
00:54:33
максимальное количество глубины как бы
00:54:35
достигнуто по апдейты короче запнулся
00:54:37
ряд почему потому что смотрите что
00:54:39
происходит это у нас ридак суда этому с
00:54:43
react компонента начинает отрисовывается
00:54:46
и возвращает же секс возвращает же секс
00:54:50
но перед этим она dispatched
00:54:52
установку пользователей сюда
00:54:55
пользователь здесь поменялись круговорот
00:54:57
компонента опять перезапускается опять
00:54:59
отрисовывается
00:55:00
и опять же секс вы защитите секс но
00:55:03
опять считается и на самом деле джей
00:55:05
секс не возвращается он не успевает
00:55:07
возвратиться потому что происходит сюда
00:55:09
потому синхрон это все происходит
00:55:11
считается сюда данные возвращается и она
00:55:14
возвращает до бесконечный цикл
00:55:15
зацикливается gsx так не успевает
00:55:17
вернуться на самом деле же секс так и не
00:55:19
успевает вернуться тасс return этого не
00:55:21
происходит потому что мы функция
00:55:23
выполняется сразу сад юзер стрелка пошла
00:55:25
сюда изменилось сразу перерисовывается
00:55:27
изменилось перерисовывать смело
00:55:28
перерисовывается диджей секса так дело и
00:55:30
не доходит войти проверим что
00:55:31
действительно него дело не доходит кто
00:55:33
же здесь немножко с асинхронным
00:55:34
синхронным кодом может быть небольшая
00:55:36
путаница давайте проверим нажмем f12
00:55:40
сейчас на по лестнице я 12 обновляю
00:55:43
страничку вы смотрите мы попали
00:55:45
of отрисовку users of f10 с этим
00:55:49
пользователей а нет возвращаем разметку
00:55:51
науки и здесь синхронно синхронная вам
00:55:53
наврала разметку вернули но опять попали
00:55:56
сюда опять попали сюда 5s этом юзеров
00:56:00
разметку вернули разметка возвращается
00:56:02
но постоянно постоянно идет это
00:56:04
зацикливание то есть мы постоянно
00:56:06
dispatcher возвращая разметку перед
00:56:08
возвратом мы меняем что-то в этом и это
00:56:10
просто бесконечно происходит так как в
00:56:12
режиме 2 га я успеваю увидеть эту
00:56:14
картинку а react в без дыба видать без такого
00:56:17
медленного пошагового выполнения он
00:56:19
просто как бы сходит с ума он бесконечно
00:56:20
крутит вертит крутит вертит он даже не
00:56:22
может показать естественно он умирает то
00:56:24
есть а немножко вам неправильно сказал
00:56:26
век живи век учись ребят то есть у нас
00:56:31
gsx возвращается и как бы даже если
00:56:35
возвращается для чего чтобы отрисовать
00:56:37
картинку чтобы отрисовать картинку по
00:56:39
итогу пользователя вот для чего gsx а
00:56:41
так как мы постоянно это вот зациклили
00:56:43
обновление то на циклиться цикле стирать
00:56:45
картинку никогда показать и короче
00:56:46
глубина там определенная и
00:56:48
react говорить о
00:56:50
на гавно козел поэтому давайте сделаем
00:56:52
вот как давайте сделаем вот как давайте
00:56:54
сейчас со старта чтобы такой зацикливать
00:56:57
у нас не было давайте с этот юзеров
00:56:59
только в том случае если у нас их ещё
00:57:00
нет давайте немножко с логически начнем
00:57:04
как бы такие вот ключи доставлялись есть
00:57:05
у нас пользователей в пробках нет iv в
00:57:09
пробках users of sense length длина
00:57:12
массива равна нулю
00:57:15
то только в этом случае только в этом
00:57:18
случае мы будем считать юзеров
00:57:19
соответствие что произойдет со старта у
00:57:23
нас компонента
00:57:26
ридак со старта у нас возвращается gsx а
00:57:31
так как пользователей с 3 изначально нет
00:57:34
изначально не нет то у нас ещё сзади
00:57:36
спастись от users юзеры за слетаются
00:57:39
опять пойдет перерисовка и вернется
00:57:42
просто gsx повторные перерисовки
00:57:44
повторного dispatch я не будет потому
00:57:46
что уже users и будут ненулевые сначала
00:57:48
визерса придут нулевые а потом ненулевые
00:57:50
и перерисовки не будет дебаггер в 12
00:57:56
итак смотрим
00:57:57
лэнс 0 поэтому мы заходим внутрь и
00:58:00
dispatcher и возвращаем же секс опять
00:58:03
засчитали пользователей за dispatch или
00:58:06
соответственно юзеры пришли повторно все
00:58:07
три пользователя длина уже не ноль
00:58:09
поэтому в их не заходим и возвращаем
00:58:11
пользователей и все и как бы до уже
00:58:13
проблем к решена и нам естественно
00:58:17
должно это не нравится должно то не
00:58:18
нравится до того тут вот условия во
00:58:21
первых да что здесь плохо какой здесь
00:58:22
сплав плохая тема которой мы уже
00:58:24
поговорим в следующем следующем выпуске
00:58:26
здесь появляется так называемый побочный
00:58:29
эффект то есть наша функциональных
00:58:31
компонента которая обязана быть чистой
00:58:34
функций обретает какой-то побочный
00:58:36
эффект
00:58:37
что осуществив мысли чистой функций
00:58:38
значит что она получает пропсы и на
00:58:41
выходе возвращает же секс а здесь она
00:58:43
получает пропсы и возвращает же с их
00:58:46
снова еще но еще а ее просто я к
00:58:50
сожалению не открыл играем в сейчас она
00:58:53
что делать она еще при прежнем
00:58:58
пожалуйста risen react
00:59:16
если мне извините такой косяк пор
00:59:19
function фанкшн
00:59:21
то есть наша функция должна принимать
00:59:23
данные и возвращать разметку
00:59:25
фиксированные не должно быть так
00:59:26
называемых побочных эффектов побочные
00:59:29
эффекты да мы знаем что они должны быть
00:59:31
им нет обильность должна быть россия не
00:59:33
имею право изменять то что в меня пришло
00:59:35
как вот здесь чистая функция да на
00:59:37
примере regisseur и тоже самое еще не
00:59:39
должно быть каких-то глобальных каких-то
00:59:41
глобальных
00:59:42
состояниях того здесь например google
00:59:44
объект какой то есть мы как бы наша
00:59:46
почесть и останется принимает данные и
00:59:48
на основе круто глобального объекта
00:59:50
царицу это возвращает или ведь этот
00:59:52
глобальный объект меняет то есть и
00:59:53
побочные эффекты и побочные эффекты то
00:59:55
есть что-то во внешнем мире меняется во
00:59:57
внешнем по отношению к функции и вот
00:59:59
функция берет и dispatched само по себе
01:00:02
во время вызова этой функции функция
01:00:03
dispatched что-то dispatched то есть
01:00:06
меняется . я вызываю снится чтобы секс
01:00:08
получить а я функцию этот момент что
01:00:09
числилась за dispatch его падла по
01:00:11
кабану не то что надо другой момент
01:00:15
ребят когда мы dispatcher по нажатию на
01:00:17
кнопку то есть функция во время своего
01:00:19
вызова она ничего не dispatched
01:00:21
возвращает же секс-то потом уже нажимаем
01:00:23
кнопку и потом происходит dispatch
01:00:25
но функция во время вызовов не должно
01:00:27
ничего не должна ничего не спать а мы за
01:00:29
dispatch или да и чтобы этой ошибки как
01:00:31
бы не было мы сделали эту проверочку
01:00:33
пока нам это нас это устроит пока что
01:00:35
пока мы не перейдем к следующим темам и
01:00:37
не поймем как нам это тема побороть все
01:00:39
друзья такая вот непростая тема такая
01:00:42
вот ну не простая логика да вы сами
01:00:44
сейчас будем бомбить большим суть
01:00:45
большие разбирать темы
01:00:47
большие разбирать дела большие страничке
01:00:49
писать и короче здесь уже не получится
01:00:51
коротко как бы до вам что-то
01:00:53
рассказывать точнее тема я буду
01:00:55
рассказывать вам коротко новые темы то
01:00:59
что мы уже знаем то просто реализацию
01:01:01
буду писать просто вот так вот зло буду
01:01:03
писать но просто поясняя что я делаю
01:01:05
follow in full работает картинки
01:01:08
отображаются тексты отображаются после
01:01:10
перезагрузки страничке до данные
01:01:12
запускаются опять же
01:01:14
скажу вам напомню что в радиусе
01:01:16
изначально у нас пустой то есть данных
01:01:18
пользователей нет благодаря тому что мы
01:01:21
сделали set your dish такой экшен
01:01:22
который принимает пользователя и
01:01:24
склеивает их со старыми пользователями
01:01:26
эти пользователи появляются
01:01:28
эти пользователи появляются вы внутри
01:01:31
внутри стоит а и соответственно
01:01:34
отображаются все друзья уже в следующем
01:01:38
выпуске мы с вами на социальному сами
01:01:41
наверно сделаем маяк запрос при деньги
01:01:43
наверное сделаем и як запрос либо же нет
01:01:46
не помню что в этом по программе идет
01:01:49
все друзья спасибо большое надеюсь было
01:01:51
полезно если что-то новое узнали
01:01:53
напишите просто что новое узнали что
01:01:54
было круто обязательно в комментарии
01:01:57
пожалуйста помогите моему продвижению
01:01:59
поэт режиме канал и напишите там реакции
01:02:01
магические слова react функциональный
01:02:03
компонент a state что мы сегодня
01:02:06
проходили со дня нового мы ничего не
01:02:08
проходили особо поэтому и ключевых слов
01:02:10
таких нет но тем не менее тогда просто
01:02:13
решить курсы react помогите такими
01:02:15
комментариями самые классные курсы уроки
01:02:17
практика комментария
01:02:18
это тоже очень очень мне поможет спасибо
01:02:21
друзья все до новых встреч
01:02:22
3d кс ты знать будешь круто
01:02:28
а декарой декан
01:02:31
asura

Описание:

🚀Стань квалифицированным разработчиком за 9+ месяцев с трудоустройством в IT —INCUBATOR: Front-end https://it-incubator.io/front-end Back-end https://it-incubator.io/back-end Поддержать меня можно на patreon https://www.patreon.com/itkamasutra или оформив спонсорство на данном канале. Помогайте друг другу вот здесь: https://t.me/reactjs_samurai Уроки по React JS: https://www.youtube.com/playlist?list=PLcvhF2Wqh7DNVy1OCUpG3i5lyxyBWhGZ8 * Сайты: https://it-kamasutra.com/ https://it-incubator.io/ https://samuraijs.com * Мы в соц. сетях: https://vk.com/itkamasutra https://www.facebook.com/unsupportedbrowser https://telegram.me/itkamasutra * Мои личные VK и Insta: https://vk.com/d.kuzyuberdin https://www.facebook.com/unsupportedbrowser

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

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

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

mobile menu iconКак можно скачать видео "49 - React JS практика - страница пользователей"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "49 - React JS практика - страница пользователей" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "49 - React JS практика - страница пользователей"?mobile menu icon

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

mobile menu iconКак скачать видео "49 - React JS практика - страница пользователей" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "49 - React JS практика - страница пользователей"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "49 - React JS практика - страница пользователей"?mobile menu icon

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

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

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