#9: 🍕 React Pizza v2 - Делаем функционал сортировки и фильтрации пицц

  Рет қаралды 62,459

Archakov Blog

Archakov Blog

Күн бұрын

Пікірлер: 208
@Shved_2.0
@Shved_2.0 Жыл бұрын
0:00 Вступление, Запугивание сложностями, Подбадривание 3:55 Формулируем задачу с сортировкой 5:31 Изучаем запросы и сортировку в Mockapi 12:40 В чем проблемма со state 19:10 Записываем в state выбранную категории 30:52 Логика вывода на страницу товар по категориям 37:02 Логика вывода на страницу товар по сортировке 53:00 Более точная настройка вывода по сортировке 1:02:01 Резюмируем
@klogachev
@klogachev 2 жыл бұрын
Делаю сейчас маленький проект по твоему уроку. Застрял на этом видосе. Спасибо!!! тебе большое за подробное объяснение. Посмотрел его 4 раза. Наконец то дошло как пробрасывать функцию. С начало думал, зачем так подробно объясняешь и так вроде все понятно. Но на этом видосе, до меня реально доходило как до жирафа)))) Еще раз спасибо тебе за годный контент. +100500 так как ты его преподносишь!!!
@haibova_irisha
@haibova_irisha 2 жыл бұрын
спасибо за коментарий , думала одно не могу понять с первого раза этот видос
@КлимСомов-х6с
@КлимСомов-х6с 2 жыл бұрын
Я такая-же фигня ;)
@pavelp7374
@pavelp7374 2 жыл бұрын
Смотрю первый раз, будет счастье если после 4-го что-то пойму! Начались ягодки!) Ни че не понимаю!)))
@UnKnown-ur9fq
@UnKnown-ur9fq Жыл бұрын
это еще цветочки.. начнется Redux - будет веселее😊
@СергейЦарелунг
@СергейЦарелунг 2 жыл бұрын
И хотел бы порекомендовать прикольные расширения для VS code. "auto import" для автоматического добавления импорта в компоненте. "html to jsx" для конвертации верстки в jsx. еще раз спасибо за науку и удачи Вам во всем.
@_mikser
@_mikser Жыл бұрын
Для сортировки по категориям, лучше в БД в массив категорий добавить несколько значений. Я добавил все пиццы категорию "0" и другую катерию подходящую пицце. Так как одна пицца может быть как "мясная" так и "острая". При таком добавлении нескольких категорий, сортировка всегда возвращает правильный список. "category": [0, 2, 5],
@constantindanilov236
@constantindanilov236 2 жыл бұрын
Арчаков - просто мастер объяснять!!!
@MaksTrueman
@MaksTrueman 2 жыл бұрын
Я просто добавил 2 маленькие кнопки сортировки по возрастанию и убыванию (↑, ↓) как во многих мобильных приложениях. const [orderType, setOrderType] = useState("asc"); setOrderType('asc')}> ↑ setOrderType('desc')}> ↓ в фетч запросе в конце &order=${orderType}
@MaksTrueman
@MaksTrueman 2 жыл бұрын
Кнопки лежат в дивке, на неё навесил стили. Получилось вполне норм. .root { display: flex; justify-content: center; button { text-align: center; width: 35px; height: 35px; padding: 5px; border: 1px solid #fe5f1e; border-radius: 30px; margin-right: 5px; cursor: pointer; background-color: white; color: #fe5f1e; &:hover { background-color: #fe5f1e; color: white; } } }
@ТимА-ш3х4м
@ТимА-ш3х4м Жыл бұрын
@@MaksTrueman классно сделал, спасибо
@NayroTV
@NayroTV Жыл бұрын
кросс
@thatsOkThatYouAreStupid
@thatsOkThatYouAreStupid Жыл бұрын
className={orderValue === 'asc' ? 'activeButton' : ''} .activeButton { background-color: $orange; color: white; } Добавьте стиль после hover-а и будет вам счастье
@dontexist7039
@dontexist7039 3 ай бұрын
Дружище,подскажи,пожалуйста, вдруг знаешь, что делать, если category=" + categoryId (32:22 время видео), mockAPI выдает как not found, а не пустой массив. У меня проект от этого крашится
@ЛусінеАтаджанян
@ЛусінеАтаджанян 2 жыл бұрын
Лучшие курс по react! Продолжай а том же духе!
@ГеннадийГорохов-ц8н
@ГеннадийГорохов-ц8н Жыл бұрын
Превосходное видео))) Получаю удовольствие когда обучаюсь)))
@jenek051
@jenek051 2 жыл бұрын
Круто) не знал некоторых вещей, спасибо 🤘🤘😌🤗🤗
@rickbacker1
@rickbacker1 Ай бұрын
Спасибо огромное за прекрасное объяснение!
@Boobnovslava
@Boobnovslava Жыл бұрын
уже писал подобный комент, но очень нравится подход проблематика=>решение=> понимание
@YulVilaya
@YulVilaya Жыл бұрын
очень-очень рада что нашла ваши уроки. это первое приложение, которое я не просто повторяю за учителем , а делаю осознанно, эксперементирую по своему и не боюсь сломать приложение, потому что я тнаконец-то понимаю, что проиходит. ВЫ самый лучший учитель, я удивлена почему остальные блогеры-реакт не могут так просто обьяснить ? почему программисты так любят кидаться в новичков терминами чтоб последние ничего не понимали и думали 'блин, это очень сложно, я не смогу как он'. ВЫ ЧУДО 🤗 жаль нет вебки, хотелось бы видеть как вы выглядете
@АсманНарынбекУулу-у4я
@АсманНарынбекУулу-у4я 2 жыл бұрын
Можно сделать все гораздо проще просто надо в массив list добавть еще 2 ключа, я решил так и сделать и у меня работает так же как и у него но у меня читабельность кода лучше. Вот мой массив кому интересно const list = [ { id: 0, name: 'популярности (по убыванию)', sort: 'rating', order: 'desc' }, { id: 1, name: 'популярности (по возрастанию)', sort: 'rating', order: 'asc' }, { id: 2, name: 'цене (по убыванию)', sort: 'price', order: 'desc' }, { id: 3, name: 'цене (по возрастанию)', sort: 'price', order: 'asc' }, { id: 4, name: 'алфавиту (по убыванию)', sort: 'title', order: 'desc' }, { id: 5, name: 'алфавиту (по возрастанию)', sort: 'title', order: 'asc' } ]
@serhiikhotsyk869
@serhiikhotsyk869 Жыл бұрын
55:47 я просто добавил свойтсво 'order' = asc или desc в обьекты. А при запросе на сервер просто вставил нужный ордер и не нужно делать лишние условия и манипуляции со строками.
@UserDev12
@UserDev12 Жыл бұрын
А я добавил отдельный стейт sortMethod который по умолчанию содержит "asc" а при клике на эту иконку рядом с сортировкой этот метод переключается с "asc" на "desc" и обратно. И также класс который в зависимости от метода сортировки разворачивает иконку на 180 градусов.
@UnKnown-ur9fq
@UnKnown-ur9fq Жыл бұрын
классный урок, спасибо! только как-то сложно у тебя с этим списком сортировки где у нас "по имени", "цене", "популярности".. я не делал этот список кастомный так как ты, а просто использовал тег .. типо так популярности цене имени получается, что в моем случае каждый элемент имеет свое вшитое значение value в которое изначально мы можем записать все что угодно.. и это удобно, в ф-ции handleSelect мы просто передаем value в setSelectCategory const handleSelect = function (event) { setSelectCategory(event.target.value) }; но, твой способ полезен новичкам попрактиковаться с версткой👍
@ДимаИванов-и4ь
@ДимаИванов-и4ь Жыл бұрын
Спасибо за урок. Объяснение очень доходчиво.
@korobkaneskvika2740
@korobkaneskvika2740 Жыл бұрын
Спасибо за видеоуроки. Но мне лично очень хотелось бы, чтобы не тратилось столько времени урока на нейминг. Теряю нить на таких паузах, когда по нескольку раз переписываем одно и то же. Спасибо еще раз
@dyadyavitya467
@dyadyavitya467 Жыл бұрын
Ты топ чел. Спасибо за гайды)))) Делал свой пэт после твоего Snekers, что бы закрепить и там как раз сортировка. Ты очень помог))) После пэта и ещё одной объясняшки на юдэми сделаю и Реакт пиццу)))
@dvromin
@dvromin 11 ай бұрын
Я сделал сортировку немного проще: В Home добавил два юзстейта // Сортировка по возрастанию/убыванию const [categoryDirection, setCategoryDirection] = useState("asc") const [categoryClicked, setCategoryClicked] = useState(true) и функцию const changeDirection = () => { setCategoryClicked(prev => !prev) setCategoryDirection(categoryClicked ? "desc" : "asc") } в useEffect поменял order const order = categoryDirection Далее перекинул changeDirection в Sort; В Sort иконку со стрелкой вверх обернул в кнопку и повесил на неё обработчик onClick={changeDirection}
@алексполян-я7к
@алексполян-я7к 2 жыл бұрын
Денис спасибо за подробное объяснение этого сложного момента, впервые увидел как делается фильтрация во взаимодействии с бекендом. Единственное что мне кажется не хватает, добавить функции, закрытие попап, при клике вне области. Но это не проблема, в первой версии Pizza ты это реализовал, поэтому от туда взял инфу и прикрутил и все стало круто. Жду дальше от тебя следующих уроков. Спасибо!!!
@ArchakovBlog
@ArchakovBlog 2 жыл бұрын
В этом курсе я объясняю как и это сделать тоже
@Евгений-х7п9с
@Евгений-х7п9с 2 жыл бұрын
Отличная сортировка, тож долго не смог разобраться, но получилось. Спасибо
@matveyd7272
@matveyd7272 2 жыл бұрын
не добавил в массив зависимостей для юзэффекта sortType и не мог понять, почему при изменении типа сортировки не происходит ререндер. Вообще сложный урок получился. Больше всего недопониманий возникло не с прокидыванием пропсов даже, а с прописыванием в фетче всех этих зависимостей для корректной сортировки. Понимаю, что сам бы до такого не додумался (но с моим опытом в 3 месяца я, думаю, это и нормально). Наверное пересмотрю этот урок на свежую голову - может что понятнее станет
@SpeakeR2319
@SpeakeR2319 Жыл бұрын
почитай про промисы и fetch API и всё будет понятнее
@aleksandrstarkov8427
@aleksandrstarkov8427 2 жыл бұрын
Спасибо за урок!!! (Правильно читать ascending - ассендинг, descending - диссендинг =))
@АсманНарынбекУулу-у4я
@АсманНарынбекУулу-у4я 2 жыл бұрын
Угарнул отдуши когда он сказал что я такой фингней занимаюсь ты не понимаешь , а я вслух сказал что я понимаю по этому я делаю чутка по другому. Классный курс спасибо!
@EvilYou
@EvilYou 5 ай бұрын
1:00:42 Причина в другом. Строки в JavaScript основаны на Юникоде. И код символа Я больше, чем код символа А.
@EugeneKh.
@EugeneKh. Жыл бұрын
Дэнис, спасибо за твои уроки. Благодаря им очень вырос в проф плане. Вопрос: зачем нам при фильтрации делать отедльный запрос на бэк, разве не логично будет фильтровать на месте массив, который нам прилетел после запроса по категории? Впечатление, что делается двойная работа.
@crn05
@crn05 Жыл бұрын
логично конечно. В курсе react sneakers он так и делает. скорее всего сделано, чтобы показать дополнительные возможности
@isaamerkhanov9971
@isaamerkhanov9971 Жыл бұрын
Насколько я знаю, в проектах фронт занимается только отображением. На фронт же не приходят 10-20 штук объектов, их может быть 1000 и больше. А фильтрация на sql в бд на сервере происходит быстрее. Фронт не загружают лишней логикой
@hotmitrofan
@hotmitrofan 7 ай бұрын
для экономии ресурсов, чтобы подгружалось только нужное. Это заметно на больших проектах, где товаров много. Мне так бэкендер обьяснял.
@matveyd7272
@matveyd7272 2 жыл бұрын
↓ ↑ кому-то точно пригодится)
@ricardo-user
@ricardo-user Жыл бұрын
@ArchakovBlog a нельзя ли производить сортировку первоначального массива, чтобы каждый раз не дергать бекенд? или это в целом нормальная практика фильтровать через запросы? можно же получая общий массив делать фильтрацию и отображать только нужно из уже полученных локальных данных. Или все же вариант через бекенд эффективенее\менее затратный по ресурсам\другое?
@ArchakovBlog
@ArchakovBlog Жыл бұрын
Это самая верная практика - запрашивать через бэк. Пицц может быть больше чем 10,30,50 и могут меняться. Из-за этого, всегда нужно актуализировать инфу у бэка
@ricardo-user
@ricardo-user Жыл бұрын
@@ArchakovBlog Понял, спасибо
@vladimirplyukhin5234
@vladimirplyukhin5234 2 жыл бұрын
Спасибо большое за урок!
@iamboikodmytro
@iamboikodmytro 2 ай бұрын
Не понятно, зачем так заморачиваться над ASC и DESC. Ведь у нас слева от сортировки есть иконка стрелки, которая и показывает в какую сторону происходит сортировка. Я просто создал для неё отдельный стейт, и при нажатии смену стейта. И когда она у меня 'true' то 'DESC', когда 'false' то 'ASC'. Так же в SCSS добавил при нажатии её поворот сверху вниз, и обратно. И направление движения сортировки показывает, миниатюрно, и нет лишних категорий)
@ProgrammerFlunt
@ProgrammerFlunt Жыл бұрын
Очень круто, спасибо!
@Курманский
@Курманский 2 жыл бұрын
Спасибо продолжай в том же духи а с нас ❤
@sernowodsk5963
@sernowodsk5963 Жыл бұрын
59:44 - я чего то не понимаю или тут можно было сделать вот так, и упростить себе жизнь : const list = [ { name: 'популярности (DESC)', sortProperty: 'rating&order=desc' }, { name: 'популярности (ASC)', sortProperty: 'rating' }, { name: 'цене (DESC)', sortProperty: 'price&order=desc' }, { name: 'цене (ASC)', sortProperty: 'price' }, { name: 'алфавиту (DESC)', sortProperty: 'title&order=desc' }, { name: 'алфавиту (ASC)', sortProperty: 'title' }, ]; не добавляя никаких минусов и не убирая их потом
@alposha
@alposha 2 ай бұрын
да получается
@alposha
@alposha 2 ай бұрын
но тогда при добавлении новых сортировок нужно будет это учитывать
@rickbacker1
@rickbacker1 Ай бұрын
идея интересная, но немного костыльная
@JavaScriptcher
@JavaScriptcher 2 жыл бұрын
Охренительно как это работает , но это работает!!!
@skip.2753
@skip.2753 2 жыл бұрын
Можно просто расширить объекты массива параметров сортировки полем order со значением "asc" или "desc": { name: "popularity ↓", prop: "rating", order: "desc" }. А уже в теле запроса в конец добавить обращение к этому полю: &order=${sortParam.order}.
@x-bit5193
@x-bit5193 2 жыл бұрын
А условие для класса active проверять по name
@enzelad2017
@enzelad2017 2 жыл бұрын
@Archakov Blog Костыль с order, мне кажется. Я сделал просто дополнительный стейт const [sortingOrder, setSortingOrder] = useState(false). Там в дизайне есть стрелочка. При клике на неё изменяю стейт и переотправляю запрос. Если sortingOrder === true, тогда по возрастанию, в обратном случае по убыванию. Плюс в зависимости от стейта сделал класса для стрелочки. Если по убыванию (false) то переворачиваю её через css-класс на 180 градусов (смотрит вниз), в обратном случае возвращаю к обычному состоянию. В итоге никаких вырезаний минуса и дополнительных типов сортировки в попапе (не знаю, может в следующих частях ты их уберёшь).
@ДмитрийСитников-ш2х
@ДмитрийСитников-ш2х 2 жыл бұрын
Прекрасная идея!
@avkuzovlev
@avkuzovlev 2 жыл бұрын
Тоже примерно так сделал, и немного увеличил стрелочку onChangeOrder()} transform={sortOrder ? 'rotate(-180 0 0)' : ''} width='15' height='10'
@РамильФатуллаев-о9ц
@РамильФатуллаев-о9ц 7 ай бұрын
Если без контекста, то можно просто в поопсах передать колбек, который у чилдренов будет вызывать в родителя изменение стейта. А ну тут так и реализовали)
@aidarbakytbekov8255
@aidarbakytbekov8255 2 жыл бұрын
я бы включил в курс ещё react query, useeffect уже почти редко кто использует в запросах
@dmaberlin
@dmaberlin Жыл бұрын
КРУТОЙ УРОК!
@constantindanilov236
@constantindanilov236 2 жыл бұрын
Поправка: ascending, asc - ассендинг(возрастание); descending, desc - диссендинг(убывание), а не иначе!
@shokhrookhr3850
@shokhrookhr3850 2 жыл бұрын
Курс супер!
@diggerdog001
@diggerdog001 11 ай бұрын
Очень сложный урок, конечно. Я лично половину не понял. Теряюсь в этих зависимостях, пропсах, куда что передается. Как это запоминать?
@АлександрИванькович-т9ф
@АлександрИванькович-т9ф 9 ай бұрын
Попробуй на листке бумаги нарисовать блок схему со стрелками что куда идёт и зачем так будет проще понять
@ThomasBlack452
@ThomasBlack452 2 ай бұрын
Да, мозгу нужно время, чтобы понять это. Если за один заход не получается - это нормально. И да, я сделал скриншот (вместо листка бумаги) и тоже рисовал стрелочки и подписывал что куда переходит.
@ПожилойБилибоба
@ПожилойБилибоба 2 ай бұрын
Это не нужно запоминать, это нужно понимать
@МаксимЛяпин-ц2ю
@МаксимЛяпин-ц2ю 8 ай бұрын
Я не совсем понял момент, где мы передаем в качестве пропсов функции изменения состояния у категории и сорта. В следующем видео , функция изменения поиска передается в качестве пропса без создания стрелочной функции, в категориях и сорте получается так нельзя сделать?
@Калабарака
@Калабарака Жыл бұрын
арчаков , ты хорош!
@alexandr8151
@alexandr8151 2 жыл бұрын
уроки набирают сложность, круто!
@darkkobra1485
@darkkobra1485 Жыл бұрын
как обстоят дела? научился к реакту?
@alexandr8151
@alexandr8151 Жыл бұрын
@@darkkobra1485 неплохо) смотря что подразумевать под научился)
@darkkobra1485
@darkkobra1485 Жыл бұрын
@@alexandr8151 Уже работаешь?
@alexandr8151
@alexandr8151 Жыл бұрын
@@darkkobra1485 и я до этого работал
@Kirill0and0Roma
@Kirill0and0Roma 2 жыл бұрын
Зачем столько танцев с бубном с order если можно просто по клику на стрелочку рядом с сортировкой менять в запросе desc на asc?
@alexfolomeev6262
@alexfolomeev6262 Жыл бұрын
Спасибо огромное
@Виталий-н5у7о
@Виталий-н5у7о Жыл бұрын
1:02:10 здесь для sortType -> useState я вытащил из файла Sort.jsx экспортом список list (где лежат варианты сортировок), и прикрутил в sortType -> useState первый элемент list[0], тем самым берем сразу данные оттуда, а не указываем явно 1. Файл Home.jsx import Sort, { list } from "../components/Sort"; ... const [sortType, setSortType] = useState(list[0]); 2. Файл Sort.jsx Вставляем до функции: export const list = [ { name: "популярности DESC", sortProperty: "rating" }, { name: "популярности ASC", sortProperty: "-rating" }, { name: "цене DESC", sortProperty: "price" }, { name: "цене ASC", sortProperty: "-price" }, { name: "алфавиту DESC", sortProperty: "title" }, { name: "алфавиту ASC", sortProperty: "-title" }, ]; Насколько данный подход верный?
@funny_channelll
@funny_channelll 2 жыл бұрын
ASC ,DESC можно просто сделать проверку ,если sortPropety === title , делаем ASC ,в других случаях DESC.
@alluresport3552
@alluresport3552 2 жыл бұрын
Кто немного недопонял, объясню, по большому счету нам нужно описать логику которая была в компоненте "Categories", в компоненту которая выше и всё, ну а дальше там вообще изи
@mariamarsenyan5072
@mariamarsenyan5072 Жыл бұрын
Помогите, пожалуйста, как исправить ошибку ? Cannot read properties of undefined (reading “includes и replace )?
@MegaDimonych
@MegaDimonych Жыл бұрын
const sortBy = sortId.sortProperty const orderBy = sortId.name.includes('DESC') ? 'desc' : 'asc'; сделал так, помогло
@mariamarsenyan5072
@mariamarsenyan5072 Жыл бұрын
@@MegaDimonych большое спасибо ))))
@daria2269
@daria2269 2 жыл бұрын
3 раза посмотрела😀
@alexeyfilippov42
@alexeyfilippov42 2 жыл бұрын
а не лучше копировать стейт в новую переменную и уже новый массив сортировать/фильтровать?
@degustat_or
@degustat_or Жыл бұрын
Как отображать то колличкство скелетонов, которое будет в каждой категории? Сейчас получается, например, что во до загрузки отображается 10 скелетонов, но потом появляется 3 пиццы. Или это нормальная практика, и так делают и в проде?
@freeksons
@freeksons Жыл бұрын
так все делают, ты не узнаешь сколько у тебя пиц пока не получишь их с серва, тоесть тогда уже и загрузка будет закончена
@mameddzhafarov6286
@mameddzhafarov6286 2 жыл бұрын
Контент Пушка Все понятно
@МихаилСабуров-ы1в
@МихаилСабуров-ы1в Жыл бұрын
Почему не даешь ссылку на свой сервис? Он ведь круче mockapi
@YulVilaya
@YulVilaya Жыл бұрын
вы знаете , я не поняла все равно зачем мы удалили минус (replace('-', '') разве он нам мешает в запросах?
@abbze8272
@abbze8272 Жыл бұрын
Запрос не работает с минусом. Некорректно составлен. Нормальный бэкэнд не допустит лишних символов в квери запросе.
@OnlyLuck1000
@OnlyLuck1000 2 жыл бұрын
Нормальные люди: вникают в контекст Я: как 2ой человечек пойдет в дом который летает?)
@evgeniykhelman3694
@evgeniykhelman3694 2 ай бұрын
у тебя очень годные уроки но я чет не понял мувов с минусом, можно же было в замен него просто "&_order=desc" подстаить и все😆
@iamboikodmytro
@iamboikodmytro 2 ай бұрын
А с ASC как быть?😄
@JasonJ333-zz4sj
@JasonJ333-zz4sj 4 ай бұрын
7:22 подскажите шо за супер расширение для инглиша
@nickdunne1235
@nickdunne1235 2 жыл бұрын
Если с сайт с мокапи или других фейеовым сервером загрузить на обычный хостинг, то работать не будет, верно?
@thebeastd4158
@thebeastd4158 Жыл бұрын
возникла проблема - у меня к примеру категорий больше десяти, и получается когда я фильтрую категорию 1 то в неё попадают все категории которые содержат 1, то есть 10,11,12 итд. начиная с двухзначных категорий такого уже нет, всё работает нормально. встал на 2 дня, ощущаю себя полным тупицей))
@thebeastd4158
@thebeastd4158 Жыл бұрын
короче я понял, мокапи весь кривой, там ничего нормально не работает что связанно запросами на него, ну и ладно, успокоился что не во мне проблема хотя бы))
@7yon482
@7yon482 2 жыл бұрын
Тут я молил богов о редаксе
@ArchakovBlog
@ArchakovBlog 2 жыл бұрын
в след уроках уже будет на редаксе
@7yon482
@7yon482 2 жыл бұрын
@@ArchakovBlog Уже дошёл, потрясный контент!
@shokhrookhr3850
@shokhrookhr3850 2 жыл бұрын
А когда выйдет 10-урок?)
@liraybe7421
@liraybe7421 3 ай бұрын
59:36 шо это за звук был?)
@helplrewerse2925
@helplrewerse2925 2 жыл бұрын
Кароче почему-то при клике на некоторые категории ответ с сервера приходит, а пиццы не рендерятся. В чём прикол?
@АлексейКобылянский-у7д
@АлексейКобылянский-у7д 8 ай бұрын
Дружище! Исправь баг с картинками в json. Картинки не отображаются
@gom-jabbar
@gom-jabbar 6 ай бұрын
баг происходит потому что dodopizza поменяла ссылку на картинки которые мы используем , я поменял ссылки в бд и теперь у меня даже быстрее грузится
@АлексейКобылянский-у7д
@АлексейКобылянский-у7д 5 ай бұрын
@@gom-jabbar А на что поменял ссылку? Какой теперь путь?
@РенатаАндросова
@РенатаАндросова 5 ай бұрын
@@АлексейКобылянский-у7д я просто себе картинки сохранила и ссылки поменяла в файле json
@АлексейКобылянский-у7д
@АлексейКобылянский-у7д 4 ай бұрын
​@@РенатаАндросова А как? Если картинки не грузятся
@РенатаАндросова
@РенатаАндросова 4 ай бұрын
@@АлексейКобылянский-у7д с сайта додо пиццы сохранила
@georgegrinding1793
@georgegrinding1793 Жыл бұрын
Если Home при маунте получает абсолютно все пиццы, зачем делать другие запросы при изменении категории, а не фильтровать уже полученный массив?!
@andreityryshkin3784
@andreityryshkin3784 2 жыл бұрын
Всем привет, Лайкай если заюзал треугольник для сортировки по возрастанию и убыванию
@borodulin_sergey
@borodulin_sergey 2 жыл бұрын
Привет, есть вопрос. Меня учили всю логику описывать в файле App.js. Как правильнее, и как чаще делают - в каждом компоненте именно его логика, или вся логика в одном компоненте ?
@yockymai
@yockymai 2 жыл бұрын
Ясен хуй что в каждом компоненте своя логика, в чем тогда смысл декомпозиции? в данном видеоуроке логика в App.js чисто для примера, чтобы сократить время
@webbomj
@webbomj 2 жыл бұрын
DAL, BLL, UI. UI - чисто визуальная + свой локальный стейт может иметь, только визуально. BLL (бизнес логика) редакс с thunk/saga. DAL - Это по сути какая то логика не связанная с бизнес и UI. Например Запрос сделать на бек за данными. В целом MV* (MVC, MVP) понимание этого решит твой вопрос на всегда. Например в путь самурая 1.0 на ютубе на 51час частично из тебя сделает программиста. а не вот это вот всё.
@mex5341
@mex5341 2 жыл бұрын
@@webbomj ужасный совет про самурая ) его курс два года назад отбил желание фронтом заниматься , не структурированный материал с плохой лексикой
@ИгорьКапасин
@ИгорьКапасин 2 жыл бұрын
не знаю как тебя назвать, со своим неймингом напрочь запутал
@crypto4elik
@crypto4elik Жыл бұрын
норм тема
@nargizgasanova6222
@nargizgasanova6222 Жыл бұрын
а как называется это программа для редактирования экрана которую вы используете?
@aserezhnikov
@aserezhnikov 4 ай бұрын
Скриншотер видимо
@СергейЦарелунг
@СергейЦарелунг 2 жыл бұрын
здравствуйте! Огромное спасибо за Ваш труд. Желаю Вам творческих успехов. Хотел бы задать вопрос, а можно ли использовать такой вариант при решении задачи с сортировкой по убыванию или возрастанию, а именно добавить в массив категорий sortOrder, например так: const list = [ {name:"популярности (возрастание)", sortProperty:'rating', sortOrder: 'asc'}, {name:"цене (возрастание)", sortProperty:'price', sortOrder: 'asc'}, {name:"алфавиту (возрастание)", sortProperty:'title', sortOrder :'asc'}, {name:"популярности (убывание)", sortProperty:'rating', sortOrder :'desc'}, {name:"цене (убывание)", sortProperty:'price', sortOrder: 'desc'}, {name:"алфавиту (убывание)", sortProperty:'title', sortOrder: 'desc'} ]; Тогда можно запрос на beckend написать так: fetch(`633e6fda83f50e9bab0ba8a.mockapi.io/items?${activeCategory > 0 ? `category=${activeCategory}` : ''}&sortBy=${sort.sortProperty}&order=${sort.sortOrder}`) У меня вроде работает.
@dontexist7039
@dontexist7039 3 ай бұрын
Ребят, подскажите, пожалуйста, что если category=" + categoryId (32:22 время видео), mockAPI выдает как not found, а не пустой массив. У меня проект от этого крашится
@ThomasBlack452
@ThomasBlack452 2 ай бұрын
У меня тоже крашится. Как временное решение я поставил в useState(1) вместо 0. Чтобы он отображал пиццы сразу из первой категории. Ты наверн разобрался уже, но вдруг кому пригодится. Что там будет дальше в видео - хз. Может, в итоге всё равно останется проблема.
@dontexist7039
@dontexist7039 2 ай бұрын
@@ThomasBlack452 Да, решил. Добавь всем пиццам на mockAPI категорию 0 и все будет гуд
@iamboikodmytro
@iamboikodmytro 2 ай бұрын
@@dontexist7039 Зачем им нулевая категория? Там же можно просто всю ссылку через интерполяция написать, и ничего крашится не будет
@Damosha06
@Damosha06 5 күн бұрын
@@iamboikodmytro Можешь код скинуть?
@boxinghighlights5690
@boxinghighlights5690 2 жыл бұрын
Спасибо за видео, лучший контент Ютуба. Немного усложнил задачу, добавив еще вторую сортировку по бренду. Однако сортировка по бренду происходит только когда открыта категория "Все товары". При выборе других категорий сортировка не происходит. Не могу понять в чем причина бага. В консоли ошибок нет. Возможно нужно дополнительную проверку делать или еще что я упустил?
@boxinghighlights5690
@boxinghighlights5690 2 жыл бұрын
Посмотрел десятый урок и понял что скорее всего проблема в mockAPI. При добавлении третьего параметра, будь-то сортировка, фильтрация или поиск - mockAPI отрабатывает некорректно.
@Marylovesautumn
@Marylovesautumn 9 ай бұрын
ТАм добавляется лишний пробел при переключении.
@Zubairavvv
@Zubairavvv 2 жыл бұрын
Что за программа для рисования?
@belukee
@belukee 2 жыл бұрын
сортировка по алфавиту не работает у меня. из за чего это может быть ?
@Никита-ф3о9и
@Никита-ф3о9и 2 жыл бұрын
Ух последнии 25 минут запутанные получились 😅
@sherzodbekmakhmudov9332
@sherzodbekmakhmudov9332 Жыл бұрын
Видео топ, всё круто, хотел спросить если кто то знает скажите что за программа где он выбирает что то и делает что хочет в этом снимке и, в 30:20 в этом месте это программа, если кто то знает название скажите пожалуйста
@pussydussy3693
@pussydussy3693 Жыл бұрын
ScreenShoter
@Galaxzier
@Galaxzier Жыл бұрын
51:30 можно заменить на ${catogoryId || '*'}
@БексултанЭрмеков
@БексултанЭрмеков 2 жыл бұрын
Доходчиво объясняет, красава
@СтройКонсалт
@СтройКонсалт Жыл бұрын
14:50 голова через стену дома торчит, пофиксить бы....
@СергейСомов-м8ы
@СергейСомов-м8ы Жыл бұрын
я вообще слабо понял что происходит. когда мы писали юзстейты, то все было по порядку. сейчас вообще хаотично всё меняется и объяснения лично мне вообще не понятны. может потому что я тупой, может потому что постоянно меняются контексты и все эти контексты нужно держать в уме и пытаться понять что там происходит. "так это мы поменяют тут, поменяем здесь, потому что мы тут делали это" и прыжки из компонента в компонент, стейты, функции. понял объяснение только того, что знал до этого лучше бы было все с самого начала сделать по другому, а не переделывать.
@CyberGenius777
@CyberGenius777 2 жыл бұрын
26:11 В onClickCategory лучше передавать ссылку на функцию и создать ее выше и там делать все манипуляции
@ArchakovBlog
@ArchakovBlog 2 жыл бұрын
Почему?
@CyberGenius777
@CyberGenius777 2 жыл бұрын
@@ArchakovBlog Я ведь писал в 6 уроке. В этом проекте ничего страшного. На больших проектах это производительность
@dr_morpho
@dr_morpho 2 жыл бұрын
Согласен, функция вызывается в дочернем компоненте по клику, а данные записываются в родительский стейт, в случае если бы тоглер был описан в родительском компоненте то и вызов бы происходил тоже в нем.
@Ohhhnailsss
@Ohhhnailsss 9 ай бұрын
курс 100из10
@артёмкоролёв-ю6е
@артёмкоролёв-ю6е 9 ай бұрын
Ну ,есть куда расти. Материал лучше готовить, не переименовывать переменные по 120 раз, :) Вам все понятно из этого урока?
@alexsatm05
@alexsatm05 6 ай бұрын
👍👍👍👍👍
@nazarii027
@nazarii027 2 жыл бұрын
Home.jsx:24 Uncaught TypeError: Cannot read properties of undefined (reading 'replace')
@НЕфартовый-с8б
@НЕфартовый-с8б Жыл бұрын
Как решил?
@grsd2017
@grsd2017 Жыл бұрын
А как получать данные с Django Api ? Ссылка с fetch-запроса ведь другая будет. И как тогда фильтровать товары ?
@Alias_s
@Alias_s Жыл бұрын
Может нужно посмотреть доку какие запросы Django Api принимает?
@jamolov_xoja
@jamolov_xoja Жыл бұрын
19:00 Keymltn
@nizom333
@nizom333 2 жыл бұрын
top
@clown2195
@clown2195 2 жыл бұрын
дядь почему не вебшторм?))
@nikolaydemidovez
@nikolaydemidovez 2 жыл бұрын
Он вроде платный, а 90% зрителей не захотят его покупать, и им неудобно будет ориентироваться в другой IDE
@clown2195
@clown2195 2 жыл бұрын
@@nikolaydemidovez ладно.
@kenanhaciyev3759
@kenanhaciyev3759 Жыл бұрын
Он летает он левитирует🤣
@jamolov_xoja
@jamolov_xoja Жыл бұрын
54:00 Keymltn
@JdIm6fhjLgdWRhn
@JdIm6fhjLgdWRhn 2 жыл бұрын
59:00
@N1K0_official
@N1K0_official 2 жыл бұрын
я просто создал еще стейт который по возрастанию и убыванию делает , сделал новый див после popup и вроде так легче воспринимать
@MrCritically
@MrCritically 2 жыл бұрын
9 Урок, а Typescript все нет (
@ArchakovBlog
@ArchakovBlog 2 жыл бұрын
TS с 20 урока начинается
@shokhrookhr3850
@shokhrookhr3850 2 жыл бұрын
@@ArchakovBlog А когда выйдет 10 - урок?)
@MrCritically
@MrCritically 2 жыл бұрын
@@ArchakovBlog Спасибо за информацию.
@nmteg
@nmteg 2 жыл бұрын
Пожалуйста, не занимайся бесконечным переименованием всевозможных наименований, ты не представляешь, как это мешает воспринимать информацию и сбивает, особенно, когда идет уже не первый-второй урок за день
@ArchakovBlog
@ArchakovBlog 2 жыл бұрын
какие-то вещи приходится переименовывать, чтобы они более или менее соответствовали новой логике. в любом случае, приведи пример где делаю "бесконечные переименования"
@harrisonwinston2850
@harrisonwinston2850 2 жыл бұрын
@@ArchakovBlog а почему фильтрация по запросу, если все данные о пиццах у нас есть? Не лучше на фронте это делать? Я не знаю, хотелось бы узнать, как лучше.
@NIReeMK
@NIReeMK 2 жыл бұрын
@@harrisonwinston2850 потому что из-за пагинации выводятся не все товары и у нас изначально нет информации о всех товарах
@PaulAtreides-d8z
@PaulAtreides-d8z Жыл бұрын
чувак через какие же ты костыли это всё делаешь!! Зачем так усложнять и запутывать, когда всё это делается через Redux?! Что за работа ради работы?!
Turn Off the Vacum And Sit Back and Laugh 🤣
00:34
SKITSFUL
Рет қаралды 4,9 МЛН
Disrespect or Respect 💔❤️
00:27
Thiago Productions
Рет қаралды 43 МЛН
CI/CD - Простым языком на понятном примере
15:29
Артём Шумейко
Рет қаралды 112 М.
React Query за 10 минут! Быстрый курс
11:34
Archakov Blog
Рет қаралды 58 М.
Полный роадмеп для backend-разработчика
24:03
Sergey Nemchinskiy
Рет қаралды 17 М.
Делаем фильтр контента на JavaScript
13:36
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 58 М.