Тёмный

Курс JavaScript ES6-классы. 04. Компонент "Каталог товаров" (Отображение товаров) 

Let's Code
Подписаться 4,3 тыс.
Просмотров 41 тыс.
50% 1

🔥 Ссылка на ветку текущего урока
› github.com/letscode-dev/js-gu...
⭐️ Курс JavaScript-практика (простой проект)
› • Курс JavaScript ES6-кл...
⭐️ Ссылка на проект
› letscode-dev.github.io/js-gui...
⭐️ Ссылка на репозиторий проекта
› github.com/letscode-dev/js-gu...

Опубликовано:

 

6 янв 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 63   
@dzmitrykubarski1462
@dzmitrykubarski1462 4 года назад
ОГо, 2 видосика за день - праздник к нам приходит :) Спасибо за уроки
@user-bm4zd5ln3m
@user-bm4zd5ln3m 3 года назад
Ты крут, ну прям все четенько, без воды, то что нужно. Большой респект. Просмотрела все, осталось последние 2 урока. Оооогромнейшее и большое спасибо за труд.
@user-np7mn1rc5m
@user-np7mn1rc5m 2 года назад
Это то что я искал ... именно нативный JavaScript, с четкой и понятной структурой проекта ... а то я уже начал переживать что не найду ))
@MBro777
@MBro777 4 года назад
3 часа до сдачи мини-проекта, спасаешь Бро
@asgard1428
@asgard1428 Год назад
Спасибо большое за такое объяснение. Можно вопрос? Если фотографий несколько и они должны подставляться в слайдер. Как их хранить? И как выводить?
@hiper2021
@hiper2021 2 года назад
блин все классно но у меня почему то в консоли браузера выдает "Uncaught ReferenceError: CATALOG is not defined"
@user-ir9du6ct3m
@user-ir9du6ct3m 4 года назад
интересно!
@fagod8278
@fagod8278 Год назад
Спасибо тебе большое, долго искал видос и нашёл тебя! Хорошо всё объяснил!
@7tipe
@7tipe 2 года назад
а как реализовать каждому отдельную ссылку и дальше всё это (корзина и т.д.)?
@gryp255
@gryp255 Год назад
Подскажи пожалуйста, как сделать, чтобы при навидении курсора на параметр подсвечивало, что он содержит. Как на 3:17
@miraclearb
@miraclearb 3 года назад
Что делать если ROOT_PRODUCTS и CATALOG оба is not defined, а root_products так вообще of null
@skyTechVektor
@skyTechVektor 2 года назад
Как сделать что бы грузились только часть товаров и после нажатия "ещё" грузилась ещё
@mind150
@mind150 2 года назад
кайф)
@---ls6st
@---ls6st Год назад
При перезагрузке страницы не сохраняется activeClass и activeText на кнопке, хоть сам продукт в local storage и сохранён ...ПОЧЕМУ((
@user-vj1si2fz5b
@user-vj1si2fz5b Год назад
что если картинок нету, на сайте, хотя все ссылки нормальные и работают
@user-er3hb9mb3y
@user-er3hb9mb3y 2 года назад
Отлично достоен лойза
@user-tn5pf8ml5y
@user-tn5pf8ml5y 2 года назад
Привет, помоги пж, остановился на этом же моменте что и ты в 4 уроке, в консоле мне пишет ошибку(Uncaught SyntaxError: Missing initializer in const declaration) что это может быть и как её убрать? На экран ничего не выводится
@user-wr5zv9zk1l
@user-wr5zv9zk1l 2 года назад
Я смотрю тут совсем не отвечают, очень жаль. У меня такая же ошибка
@vladork3032
@vladork3032 3 года назад
Если товаров много - сайт зависнет же, пока не получит ВСЕ данные сначала, потом сформирует html и только потом отобразит.. Не лучше ли делать подгрузку товаров пачками?
@LetsCodeDev
@LetsCodeDev 3 года назад
Лучше. Это максимально просто проект, где минимальный функционал. Проект, приближенный к реальному здесь ru-vid.com/group/PL7cTIfGFrdKkQAWKDu2NdFt5Cx38B-A3i В проекте по "Звёздным войнам" персонажи как раз отображаются не все, а постранично
@user-kv7if1qm2i
@user-kv7if1qm2i 3 года назад
Доброго времени суток, подскажите пожалуйста , у меня почемуто в консоле ошибка что CATALOG is not defined at Products.render (products.js:4) at products.js:11 Пожалуйста, помогите
@elmaraliyev301
@elmaraliyev301 3 года назад
тоже самое было, потом в html коде script с подключением поднял выше остальных и все стало работать
@bogdanpoliatychko2901
@bogdanpoliatychko2901 3 года назад
@@elmaraliyev301 от души) сижу уже час, а тут такое простое решение)
@crusader347
@crusader347 Год назад
Нашёл ответ?
@fulltank8197
@fulltank8197 3 года назад
Что делать если в ul показывает не сами товары, а пишет ${htmlCatalog}?
@LetsCodeDev
@LetsCodeDev 3 года назад
Значит он не понимает, что htmlCatalog - это переменная. Ошибка в записи шаблонной строки. Возможно, вместо обратных кавычек используются обычные
@user-do4oz2gl4r
@user-do4oz2gl4r Год назад
Добрый день! Столкнулся с проблемой, все работает как надо, кроме отображения изображения(под него создается див пустой, в панели разраба путь пишется к картинке, но она не отображается). Все перепроверил и как-то в в google не могу найти ответ. Нужна твоя помощь)
@LetsCodeDev
@LetsCodeDev Год назад
А путь к изображению правильный?
@user-do4oz2gl4r
@user-do4oz2gl4r Год назад
@@LetsCodeDev src не правильно написал)))
@topskills1569
@topskills1569 2 года назад
Привет спасибо за уроки помоги пожалуйста выходит вот такая ошибка Products.js:23 Uncaught ReferenceError: ROOT_PRODUCTS is not defined at Products.render (Products.js:23) at Products.js:28
@nurb1ack503
@nurb1ack503 2 года назад
решил проблему?
@s06j3
@s06j3 2 года назад
@@nurb1ack503а ты решил проблему?
@valknut6182
@valknut6182 2 года назад
Порядок не тот, header должен стоять выше продуктов
@jackkondaya9170
@jackkondaya9170 Год назад
help pls) Products.js:23 Uncaught TypeError: Cannot set properties of null (setting 'innerHTML') at Products.render (Products.js:23:33) at Products.js:28:14 Не работает ДЖИЕс
@LetsCodeDev
@LetsCodeDev Год назад
Залей проект на Github или куда-то еще и закинь сюда ссылку на файл, где ошибка. Тогда можно что-то будет подсказать. Так по логике, ROOT_PRODUCTS - это селектор для элемента с ID products. Похоже не может его найти на страницею const ROOT_PRODUCTS = document.getElementById('products'); Поверь наличие этого элемента
@AlexKnyaZz
@AlexKnyaZz 3 года назад
почему без json синтаксис js не работает и не подсвечивается в webstorm?
@LetsCodeDev
@LetsCodeDev 3 года назад
расширения .json?
@developerlairs
@developerlairs 2 года назад
@@LetsCodeDev Да))
@user-pm1mq3cf7h
@user-pm1mq3cf7h 10 месяцев назад
А методы в классе мы создаём и называем сами, то есть можно их назвать как нашей душе угодно?
@LetsCodeDev
@LetsCodeDev 10 месяцев назад
Да, но лучше осмысленно
@user-ir9du6ct3m
@user-ir9du6ct3m 4 года назад
Бро, а будет про то, как можно добавлять новые товары на сайт интерактивно? Чтобы добавлялись в ДОМ?
@LetsCodeDev
@LetsCodeDev 4 года назад
Что имеешь ввиду? Админку? В админке добавляем новый товар, а у пользователя он отображается? По сути у нас товары из каталога как раз и добавляются динамически в DOM
@user-ir9du6ct3m
@user-ir9du6ct3m 4 года назад
@@LetsCodeDev Наверное, админку. Я имел ввиду, кнопку "добавить" на странице. при клике на нее вылазит модалка с полями, при заполнении которой появляется на странице новая карточка товара. Мне это очень интересно, но, наверное, это не для интернет-магазина?
@LetsCodeDev
@LetsCodeDev 4 года назад
@@user-ir9du6ct3m Это можно сделать, но вопрос в другом. Где будет храниться потом этот товар? Мы можем добавить новую запись в массив CATALOG, но когда мы перезагрузим страницу, то эта запись исчезнет. Чтобы она не исчезла нужно где-то хранить массив: или поместить в локальное хранилище localStorage / IndexedDB или же отправить это всё на backend, чтобы всё записалось в базу данных. В данном курсе мы не пишем backend-приложение, поэтому сохранить в базу данных не сможем
@user-ir9du6ct3m
@user-ir9du6ct3m 4 года назад
@@LetsCodeDev Согласен, если в данном проекте не запланирован localStorage, то смысла в добавлении нет
@awenn2015
@awenn2015 4 года назад
@@LetsCodeDev логично хранить товары в бд , не? И при тендере получать их оттуда
@user-qd1py6cp5g
@user-qd1py6cp5g 3 года назад
А если ничего не получилось? Пустая страница
@LetsCodeDev
@LetsCodeDev 3 года назад
Посмотреть что написано в консоли. F12 -> Console
@ruservices
@ruservices 2 года назад
ааааа! htmlCatalog += что за символ дальше? Всю клаву претыкал(
@LetsCodeDev
@LetsCodeDev 2 года назад
Перевести язык на английский и нажать букву "ё". Получится как раз этот символ "`"
@user-mx6vz6rq6z
@user-mx6vz6rq6z 3 года назад
Все равно это никто не прочитает, но спрошу. А вот есть у меня кнопка: Показать еще, и я в консоль подгружаю данные с сервера, они выводится, а на страницу вообще никак не могу
@LetsCodeDev
@LetsCodeDev 3 года назад
Для кнопка "Показать еще" нужно логику работы программы менять. Сейчас при старте отправляется запрос fetch('server/catalog.json') и забираются все данные. Как вариант, можно сделать следующее: 1. Поменять формат данных в фале catalog.json. Сделать в таком формате в одном файле или разбить на несколько для каждой страницы [ { "page": 1, "data": [ { "id": "el1", "name": "name1" }, { "id": "el2", "name": "name2" } ] }, { "page": 2, "data": [ { "id": "el3", "name": "name3" }, { "id": "el4", "name": "name4" } ] } ] 2. При нажатии на кнопку "Показать еще" отправлять еще один fetch (если разбито по разным файлам) или брать данные по странице 2
@KuraiDaTenshiDesu
@KuraiDaTenshiDesu 11 месяцев назад
Замечу один момент, не знаю конечно, как оно было на момент создания видео, но сейчас есть возможность задавать статические методы класса, поэтому при их использовании не будет необходимости создавать экземпляр класса, а можно будет обращаться к нему на прямую
@LetsCodeDev
@LetsCodeDev 11 месяцев назад
Согласен! Хорошее замечание! Статические методы можно и нужно использовать
@user-oe4lm3pl6e
@user-oe4lm3pl6e Год назад
круто но хотел посмотреть как это срендерить данные с помощью createElement а не просто стрингой но всё равно полезно
@LetsCodeDev
@LetsCodeDev Год назад
Была идея сделать через createElement, даже демку делал codepen.io/anton-sergeenkov/pen/BayNgKx Но там получается гораздо сложнее для восприятия, когда проект разрастается, поэтому не реализовывал в этом проекте. Если писать через createElement то в конечном итоге приходишь к созданию своего JSX
Далее
Grand Final | IEM Dallas 2024 | КРИВОЙ ЭФИР
6:53:16
100% она сделает 🤫
01:00
Просмотров 128 тыс.