Реализовать React-компонент Menu
, который бы реализовывал интерфейс выпадающего меню в раскрытом виде, или в закрытом, как представлено на скриншоте ниже:
const items = [
{ title: 'Главная страница', href: '#home' },
{ title: 'О компании', href: '#about' },
{ title: 'Контакты', href: '#contact' }
];
const app = (
<div>
<Menu items={items} opened={true} />
<Menu items={items} />
</div>
);
ReactDOM.render(
app,
document.getElementById('root')
);
Компонент Menu
принимает два аргумента:
items
— список пунктов меню, массив объектов, у каждого объект доступно два свойстваtitle
— заголовок иhref
— адрес ссылки.opened
— состояние меню, логический тип, еслиtrue
, то меню раскрыто и мы видим пункты меню, еслиfalse
— меню закрыто, и мы видим только кнопку-триггер. Не обязательный, по умолчаниюfalse
.
Раскрытое меню должно создавать такую структуру DOM:
<div class="menu menu-open">
<div class="menu-toggle"><span></span></div>
<nav>
<ul>
<li><a href="#home">Главная страница</a></li>
<li><a href="#about">О компании</a></li>
<li><a href="#contact">Контакты</a></li>
</ul>
</nav>
</div>
Если меню закрыто, то структура DOM должна иметь вид:
<div class="menu">
<div class="menu-toggle"><span></span></div>
</div>
Компонент необходимо реализовать в файле ./js/Menu.js
. Файл уже подключен к документы, поэтому другие файлы изменять не требуется.
Реализуйте компонент во вкладке JS(Babel). Перед началом работы сделайте форк этого пена: