🟨 React
⚑ ЛСгкая
πŸ• 10 ΠΌΠΈΠ½ΡƒΡ‚

πŸ”₯ Π˜Π½Ρ‚Π΅Ρ€Π²ΡŒΡŽ-кСйс #2: Кнопка для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ этап трудоустройства! Π’Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠ»ΠΈ всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ собСсСдования ΠΈ тСхничСскиС скрининги. Π­Ρ‚ΠΎ послСднСС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Π² Π½Π°ΡˆΡƒ компанию.

АлСксандр, teamlead ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°! МСня Π·ΠΎΠ²ΡƒΡ‚ АлСксандр, я Ρ‚ΠΈΠΌΠ»ΠΈΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ΡΡŒ. ΠœΡ‹ Π±Ρ‹Π»ΠΈ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½Ρ‹ вашими знаниями ΠΈ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… этапах. Π­Ρ‚ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ практичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ β€” Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ процСсс Π½Π°ΠΉΠΌΠ°. Оно дСмонстрируСт Ρ‚ΠΈΠΏΠΈΡ‡Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΌΡ‹ сразу ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ знакомству с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ!

ВСхничСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса трудоустройства Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ пропс variant ΠΈ мСняСт ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ значСния.
  2. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠ½ΠΎΠΏΠΎΠΊ: primary, secondary, success, danger, warning.
  3. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ CSS-класс ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² зависимости ΠΎΡ‚ значСния пропса variant.
  4. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ тСкст Ρ‡Π΅Ρ€Π΅Π· children.
  5. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ соврСмСнным стандартам React ΠΈ Π±Ρ‹Ρ‚ΡŒ чистым ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

Π‘Ρ€ΠΎΠΊ выполнСния: 10 ΠΌΠΈΠ½ΡƒΡ‚

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Button Component

πŸ’‘ Подсказка
  • Для примСнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов Π² React ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ строки ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк.
  • Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ класс button Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎ всСм ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ, Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ button--{variant} зависит ΠΎΡ‚ пропса.
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ формирования класса: className={button buttonβ€”${variant}}.
  • НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ data-testid="button" для прохоТдСния тСстов.
  • ДокумСнтация: react.dev/learn/passing-props-to-a-component
πŸ‘€ РСшСниС
import React from 'react';
import './styles.css';
 
export function Button({ children, variant }) {
  return (
    <button className={`button button--${variant}`} data-testid="button">
      {children}
    </button>
  );
}
 
export default function App() {
  return (
    <main className="button-container">
      <div className="button-showcase">
        <Button variant="primary">Primary Button</Button>
        <Button variant="secondary">Secondary Button</Button>
        <Button variant="success">Success Button</Button>
        <Button variant="danger">Danger Button</Button>
        <Button variant="warning">Warning Button</Button>
      </div>
    </main>
  );
}

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚: ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Button ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° пропса: children (содСрТимоС ΠΊΠ½ΠΎΠΏΠΊΠΈ) ΠΈ variant (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ стиля). Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Π½ΡƒΡŽ строку для формирования класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ состоит ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса button ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° button--${variant}. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ стили ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π² зависимости ΠΎΡ‚ значСния пропса variant. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ App дСмонстрируСт использованиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Button с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ стилСй.

πŸ§‘β€πŸ’» Π­Ρ‚ΠΎ Π½Π΅ Π±Π°Π³! Π­Ρ‚ΠΎ Ρ„ΠΈΡ‡Π°!

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ скрыт Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠΌ.

ΠŸΠΎΠ²Π΅Ρ€ΡŒ, Ρ‚Π°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅: я ΠΎΠ±Π΅Ρ€Π΅Π³Π°ΡŽ тСбя ΠΎΡ‚ ΠΈΡΠΊΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π½Π΅ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях. МалСнький экран ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° β€” Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ для программиста.

πŸ“– БСйчас: Π˜Π·ΡƒΡ‡ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ДСйствуй ΠΊΠ°ΠΊ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³.

πŸ’» ΠŸΠΎΡ‚ΠΎΠΌ: Бядь Π·Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΎΡ‚ΠΊΡ€ΠΎΠΉ сайт ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉ всС ΠΈΠ΄Π΅ΠΈ с ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚ΠΎΠΌ. ДСйствуй ΠΊΠ°ΠΊ ΠΊΠΎΠ΄-Π΄ΠΆΠ΅Π΄Π°ΠΉ!