Никита
Роль: UX-дизайнер
Город: Москва
Нажмите стрелку справа для следующего шага. Пропустить обучение нельзя - сначала пройдите все шаги.
Две карточки: Никита и Елена
На сайтах часто повторяются одинаковые блоки с разным содержимым - карточки товаров, профили, ссылки. В React для этого делают один компонент-шаблон и передают в него данные через пропсы (props). В App.js создайте переиспользуемый компонент MemberCard и выведите список участников команды. React подключён в предпросмотре автоматически. Сверяйтесь с вкладкой «Результат».
Пишите код под комментарием // >>> Пишите код здесь <<<. Один шаблон карточки + разные данные через пропсы. Список понятий - в «Дополнительной информации», эталон - во вкладке «Результат».
Допишите решение в редакторе слева, сверьте с вкладкой «Результат» и нажмите Проверить. Кнопка «Помощник» подставит решение по шагам.
Две карточки: Никита и Елена
function MemberCard({ fullName, role, city, onHello }) - деструктуризация пропсов.className="member-card" / className="app" - классы в JSX.<h1>, <h2>, <p>, <button> - разметка.const team = [...] + Array.map() - список карточек.key={member.id} - стабильный id элемента списка.onClick, type="button", alert(...) - клик и сообщение.body, #root, .app h1 - CSS превью.
Пишите код только в
App.js.
Ниже - важные понятия по теме задачи.
body -
font-family: system-ui, sans-serif,
margin: 16px,
background: #f5f3ff.
#root -
max-width: 320px.
.app h1 -
margin: 0 0 10px,
font-size: 20px,
color: #312e81.
<!DOCTYPE html>, <html lang="ru">, <meta charset="UTF-8" />, <title> React Preview.<div id="root"> + монтирование App через ReactDOM.
Когда вы пишете
<MemberCard fullName="Никита" role="..." />,
React собирает атрибуты в объект props. Внутри компонента props
только читают - менять их нельзя. Чтобы показать другие данные, родитель
передаёт новые значения или перерисовывает компонент.
function MemberCard({ fullName, role, city, onHello })
- удобнее, чем каждый раз писать
props.fullName.
Один шаблон MemberCard + массив данных team - и вы получаете сколько угодно карточек.
Атрибут
key
помогает React отличать элементы списка друг от друга.
onHello={handleHello}
передаёт обработчик в дочерний компонент. В кнопке вызывают
onClick={() => onHello(fullName)},
чтобы передать имя в alert.
Коротко: MemberCard с деструктуризацией → team + map + key → handleHello / onClick → «Проверить».
Сделайте переиспользуемую карточку участника и выведите двух человек из данных в App.js. Сверяйтесь с вкладкой «Результат».
Задачи:
Пишите только в App.js. React подключён в предпросмотре автоматически.
Если условие кажется непонятным - откройте вкладку «Описание задачи».
Дополнить код в редакторе (готовые шаги не переписываются):