Как создать Аккордеон Компонент в React JS за 7 минут

  Рет қаралды 3,616

Типичный Веб Разработчик

Типичный Веб Разработчик

11 ай бұрын

Ссылка на исходники в Телеграм👉 t.me/tipichnyj_web_razrabotch...
В этом видео создаем Аккордеон меню в React JS без использования каких-либо дополнительных библиотек.
• React JS | GSAP
• React JS | Изображения...
• React JS | Menu
• React JS | Хуки
• React JS | Полезные фишки
• IT-ЛайфXаки

Пікірлер: 18
@user-tk7qv9rv2c
@user-tk7qv9rv2c 5 күн бұрын
Спасибо! Быстро, четко по делу и с объяснением!
@sia4281
@sia4281 10 ай бұрын
То что надо, супер!
@dez1ess
@dez1ess 10 ай бұрын
огромное тебе спасибо, несколько месяцев не знал как решить вопрос с плавной анимацией раскрытия!! Лучший
@disablee00
@disablee00 5 ай бұрын
несколько месяцев? можно в гугле за минуту найти
@illiabulgakov2013
@illiabulgakov2013 2 ай бұрын
Привет, спасибо тебе большее за это видео, оно мне очень сильно помогло!!! 👍👍👍
@user-ou6ir7zv3z
@user-ou6ir7zv3z 10 ай бұрын
Спасибо!
@aminabu5985
@aminabu5985 Ай бұрын
Удивительная работа коротко и ясно. Хочу только спросить, почему создали компонент AccordionItem ? Как она влияет на плавность раскрытия и закрытия ? Если его не создать не получится плавность ? Заранее благодарю за ответ )
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik Ай бұрын
Привет. AccordianItem произвольное название, у нас есть ненумерованный список ul с элементами li (list items), поэтому логично назвать accordionItem. Это никак не влияет на плавность. Можно взять div вместо ul и li. Плавность появляется за счет transition: height 0.3s; в файле Accordion.css.
@aminabu5985
@aminabu5985 Ай бұрын
@@tipichnyj_web_razrabotchik нет я не про название,а про то, что вы создали новый компонет и передали в нее пропсы. Т.е. вы изменили первоначальный ваш код, дабы сделать возможным плавность ?
@alekspodobashev518
@alekspodobashev518 4 ай бұрын
Подскажите пожалуйста, можно ли как-нибудь сделать так, чтобы по умолчанию первый элемент был сразу открытым?
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 4 ай бұрын
Привет. Добавь useEffect(() => { setId(0); }, []); и по умолчанию будет открываться нулевой элемент. export const Accordion = ({ faqList }) => { const [openId, setId] = useState(null); useEffect(() => { setId(0); }, []); return ( {faqList.map((faqItem, id) => { return ( (id === openId ? setId(null) : setId(id))} faqItem={faqItem} isOpen={id === openId} key={id} /> ); })} ); };
@MrUnknownman1986
@MrUnknownman1986 4 ай бұрын
Вы оперируете isOpen, изменяя его состояние с true на false, но для этого не использете usestate. Почему ? Как так ? Объясните пожалуйста или я где-то чего-то не понял
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 4 ай бұрын
Привет. В этом аккордеоне использую ненумерованный список ul и элементы li. Разворачиваю все это дело через map. У каждого li есть свой порядковый номер id, при клике по li обновляю состояние openId = id, или если openId уже равно этому id то обновляю состояние openId = null. При каждом обновлении состояния setId происходит сравнение isOpen={id === openId}, получается isOpen не хранится в состоянии, но его значение true или false зависит от состояния. Такая схема позволяет управлять всем аккордеоном с помощью одного openId. Из минусов - нет возможности открыть сразу несколько элементов. export const Accordion = ({ faqList }) => { const [openId, setId] = useState(null); return ( {faqList.map((faqItem, id) => { return ( (id === openId ? setId(null) : setId(id))} faqItem={faqItem} isOpen={id === openId} key={id} /> ); })} ); };
@MrUnknownman1986
@MrUnknownman1986 4 ай бұрын
@@tipichnyj_web_razrabotchik Большое спасибо за ответ, немножечко понятней стало , я так понимаю мы одним выстрелом убиваем 2 зайцев, чтобы не использовать 2 раза usestate, а вытягиваем его из одного. Правильно я понимаю ? А вообще как вы изучили react, javascript, может какие-нибудь курсы посоветуете или может быть методы изучения ?
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 4 ай бұрын
У меня долгая история, сначала где-то в 2010 я начал изучать html css js, было просто интересно, затем была HTML Академия, потом практика в реальной компании, сначала тестировщиком, позднее верстальщиком. Позже было 2 года в RS-Sсhool, у них есть бесплатные курсы по JS и React. Много опыта приносит работа в команде и советы тимлида. Нужно практиковаться каждый день, и каждый день решать какие-нибудь нестандартные задачи. (Например тут - www.codewars.com ) Книги читать наверно нет смысла, т.к. обычно нужна не вся книга, а решение небольшой конкретной задачи.
@user-tk7qv9rv2c
@user-tk7qv9rv2c 5 күн бұрын
@@tipichnyj_web_razrabotchik Ооо, RS School! Я тоже проходила) вот только нашла первую работу, не мечты, кончено, но хоть нашла)
@MrUnknownman1986
@MrUnknownman1986 4 ай бұрын
А есть github, источник кода ... ?
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 4 ай бұрын
Привет. Под видео ссылка на телеграм, там есть ссылка на Github c исходниками.
Как анимировать меню при монтировании в React JS
6:44
Типичный Веб Разработчик
Рет қаралды 2,1 М.
React JS Explained In 10 Minutes
10:00
Dennis Ivy
Рет қаралды 242 М.
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 192 МЛН
Just try to use a cool gadget 😍
00:33
123 GO! SHORTS
Рет қаралды 85 МЛН
Sigma Girl Past #funny #sigma #viral
00:20
CRAZY GREAPA
Рет қаралды 22 МЛН
Зачем на самом деле нужен хук useCallback
8:33
Михаил Непомнящий
Рет қаралды 38 М.
Vite для быстрой разработки и сборки приложения
10:49
Михаил Непомнящий
Рет қаралды 64 М.
React + GSAP | MotionPathPlugin + ScrollTrigger
6:14
Типичный Веб Разработчик
Рет қаралды 448
[RU] State of JS 2023 - Обсудим?
JavaScript.Ninja
Рет қаралды 345
7 Лет Опыта в IT | Что я Понял?
19:56
Vlad Mishustin
Рет қаралды 55 М.
Test-Driven Development // Fun TDD Introduction with JavaScript
12:55
React Query за 10 минут! Быстрый курс
11:34
Archakov Blog
Рет қаралды 49 М.
Создаем аккордеон на JS за 10 минут
11:53
Code Lab - Уроки по программированию
Рет қаралды 3,6 М.
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 192 МЛН