рдЖрдЬ, рд░рд┐рдПрдХреНрдЯ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рджрд╕рд╡реЗрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рд╣рдо рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдШрдЯрдХреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдкрд░ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░реЗрдВред

тЖТ
рднрд╛рдЧ 1: рдкрд╛рдареНрдпрдХреНрд░рдо рдЕрд╡рд▓реЛрдХрди, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░рдг, ReactDOM рдФрд░ JSXтЖТ
рднрд╛рдЧ 2: рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХтЖТ
рднрд╛рдЧ 3: рдШрдЯрдХ рдлрд╛рдЗрд▓реЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛тЖТ
рднрд╛рдЧ 4: рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдмрдЪреНрдЪреЗ рдХреЗ рдШрдЯрдХтЖТ
рднрд╛рдЧ 5: рдПрдХ TODO рдЖрд╡реЗрджрди, рд╕реНрдЯрд╛рдЗрд▓рд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдкрд░ рдХрд╛рдо рд╢реБрд░реВтЖТ
рднрд╛рдЧ 6: рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬреЗрдПрд╕рдПрдХреНрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯтЖТ
рднрд╛рдЧ 7: рдЗрдирд▓рд╛рдЗрди рд╢реИрд▓реАтЖТ
рднрд╛рдЧ 8: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрд╛, рдШрдЯрдХреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рддтЖТ
рднрд╛рдЧ 9: рдШрдЯрдХ рдЧреБрдгтЖТ
рднрд╛рдЧ 10: рдШрдЯрдХ рдЧреБрдгреЛрдВ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛тЖТ
рднрд╛рдЧ 11: рдбрд╛рдпрдиреЗрдорд┐рдХ рдорд╛рд░реНрдХрдЕрдк рдЬреЗрдирд░реЗрд╢рди рдФрд░ рдореИрдк рдПрд░реЗ рд╡рд┐рдзрд┐тЖТ
рднрд╛рдЧ 12: рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛, рдПрдХ TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рддреАрд╕рд░рд╛ рдЪрд░рдгтЖТ
рднрд╛рдЧ 13: рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдХтЖТ
рднрд╛рдЧ 14: рд╡рд░реНрдЧ-рдЖрдзрд╛рд░рд┐рдд рдШрдЯрдХреЛрдВ, рдШрдЯрдХ рд╕реНрдерд┐рддрд┐ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛тЖТ
рднрд╛рдЧ 15: рдШрдЯрдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛рдПрдБтЖТ
рднрд╛рдЧ 16: TODO рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд╛ рдЪреМрдерд╛ рдЪрд░рдгтЖТ
рднрд╛рдЧ 17: TODO рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдХрд╛рдо рдХрд╛ рдкрд╛рдВрдЪрд╡рд╛ рдЪрд░рдг, рдШрдЯрдХреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИтЖТ
рднрд╛рдЧ 18: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рдЫрдард╛ рдЪрд░рдгтЖТ
рднрд╛рдЧ 19: рдШрдЯрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╡рд┐рдзрд┐рдпрд╛рдБрднрд╛рдЧ 20: рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рдкрд╣рд▓рд╛ рдкрд╛рдатЖТ
рднрд╛рдЧ 21: рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдкрд░ рджреВрд╕рд░рд╛ рдкрд╛рда рдФрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛тЖТ
рднрд╛рдЧ 22: TODO рдЖрд╡реЗрджрди рдкрд░ рдХрд╛рдо рдХрд╛ рд╕рд╛рддрд╡рд╛рдВ рдЪрд░рдг, рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛тЖТ
рднрд╛рдЧ 23: рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдкрд╣рд▓рд╛ рдкрд╛рдатЖТ
рднрд╛рдЧ 24: рджреВрд╕рд░рд╛ рд░реВрдк рдкрд╛рдатЖТ
рднрд╛рдЧ 25: рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛тЖТ
рднрд╛рдЧ 26: рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдХрдВрдЯреЗрдирд░ / рдШрдЯрдХ рдкреИрдЯрд░реНрдитЖТ
рднрд╛рдЧ 27: рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдкрд╛рда 20. рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ред рдШрдЯрдХ рдЧреБрдг, рд╕реНрдЯрд╛рдЗрд▓
тЖТ
рдореВрд▓тЦНZadanie
- рдПрдХ рдирдпрд╛ рд░рд┐рдПрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреГрд╖реНрда рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдХреЛрдб рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХ рдХреЛ рдЪреБрдЯрдХреБрд▓реЗ рд╡рд╛рд▓реЗ 5
Joke
рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрди рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдмрд╛рд╣рд░ рд▓рд╛рдПрдБред - рдкреНрд░рддреНрдпреЗрдХ
Joke
рдШрдЯрдХ рдХреЛ рдЕрдкрдиреЗ рдореБрдЦреНрдп рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП, рдордЬрд╛рдХ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдФрд░ punchLine
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП question
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
тЦНрдЖрдзрд╛рд░ рдХрд╛рд░реНрдп
рдХреБрдЫ рдЪреБрдЯрдХреБрд▓реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдиреЗ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: "рдХреНрд▓реЗрдкреНрдЯреЛрдореИрдирд┐рдпрд╛рдХ рдХреЛ рджрдВрдбреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рдЪреАрдЬреЛрдВ рдХреЛ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВред" рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐
question
рдШрдЯрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░
Joke
рдШрдЯрдХ рдХреЗрд╡рд▓
punchLine
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
тЦНReshenie
рдореБрдЦреНрдп рдХрд╛рд░реНрдп
index.js
рдлрд╝рд╛рдЗрд▓ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдЧреА:
import React from "react" import ReactDOM from "react-dom" import App from "./App" ReactDOM.render(<App />, document.getElementById("root"))
рдпрд╣рд╛рдБ
App.js
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
import React from "react" import Joke from "./Joke" function App() { return ( <div> <Joke question="What's the best thing about Switzerland?" punchLine="I don't know, but the flag is a big plus!" /> <Joke question="Did you hear about the mathematician who's afraid of negative numbers?" punchLine="He'll stop at nothing to avoid them!" /> <Joke question="Hear about the new restaurant called Karma?" punchLine="There's no menu: You get what you deserve." /> <Joke question="Did you hear about the actor who fell through the floorboards?" punchLine="He was just going through a stage." /> <Joke question="Did you hear about the claustrophobic astronaut?" punchLine="He just needed a little space." /> </div> ) } export default App
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреВрдВрдХрд┐
Joke
рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓
App
рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ
import Joke from "./Joke"
рд╕рд╛рде рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо
App
рд╕реЗ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЯреИрдЧ рдореЗрдВ рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
<div>
ред рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо
question
рдФрд░
punchLine
рдкрд╛рд╕ рдХрд░рддреЗ
punchLine
ред
рдпрд╣рд╛рдБ
Joke.js
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ:
import React from "react" function Joke(props) { return ( <div> <h3>Question: {props.question}</h3> <h3>Answer: {props.punchLine}</h3> <hr/> </div> ) } export default Joke
рдпрд╣рд╛рдВ,
Joke
рдлрд╝рдВрдХреНрд╢рди рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдо
props
рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдерд╛рдкрд┐рдд рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ
props
рдХреЙрд▓ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рд╣рдо рдШрдЯрдХ рд╕реЗ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рд╡реЗ
<div>
рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВред
props.question
рдФрд░
props.punchLine
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
props.punchLine
рд╣рдо рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпреЗ рдЧреБрдг
props
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдг рдмрди рдЬрд╛рддреЗ рд╣реИрдВред рд╡реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ рдХрд┐ JSX рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рд╕рд┐рд╕реНрдЯрдо рдЪрд░ рдирд╛рдореЛрдВ рдХреЛ рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
<h3>
рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рдмрд╛рдж, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЪреБрдЯрдХреБрд▓реЗ рдХрд╛ рдореБрдЦреНрдп рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ - рдЗрд╕рдХрд╛ рдкреНрд░рдореБрдЦ рд╡рд╛рдХреНрдпрд╛рдВрд╢,
<hr/>
рддрддреНрд╡ рд╣реИ рдЬреЛ рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдордЬрд╛рдХ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реБрдП рдРрд╕реА рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреАред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ VSCode рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
VSCode рдореЗрдВ рдЖрд╡реЗрджрдирдпрд╣рд╛рдБ рдЖрд╡реЗрджрди рдкреГрд╖реНрда рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬрдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЪреБрдЯрдХреБрд▓реЛрдВ рдХреЗ рд╕рд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐
Joke
рдШрдЯрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рдХреЗрд╡рд▓
punchLine
рд╕рдВрдкрддреНрддрд┐
punchLine
, рдФрд░
question
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдШрдЯрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<Joke punchLine="It's hard to explain puns to kleptomaniacs because they always take things literally." />
рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЛ
App
рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрд╡реЗрджрди рдкреГрд╖реНрда рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред
рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЧрдард┐рдд рдЖрд╡реЗрджрди рдкреГрд╖реНрдардЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рд╣рд╛рд▓рд╛рдВрдХрд┐
question
рд╕рдВрдкрддреНрддрд┐ рдШрдЯрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдордЬрд╛рдХ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╣рдо рд╕рд╢рд░реНрдд рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЖрдк рд╣рдорд╛рд░реА рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмреАрдЪ, рд╣рдо рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдЕрд░реНрдерд╛рддреН, рд╣рдо рдЗрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рдпрджрд┐
question
рд╕рдВрдкрддреНрддрд┐ рдШрдЯрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛
question
рдЧрдП JSX рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдЯреБрдХрдбрд╝рд╛ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ
Joke
рдХрдВрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ CSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:
import React from "react" function Joke(props) { return ( <div> <h3 style={{display: props.question ? "block" : "none"}}>Question: {props.question}</h3> <h3>Answer: {props.punchLine}</h3> <hr/> </div> ) } export default Joke
рд╣рдо рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ
<h3>
рд╢реИрд▓реА, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
props.question
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдШрдЯрдХ рдХреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдпрд╣ рдЧреБрдг рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реИ, рддреЛ рддрддреНрд╡
display: block
рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ
display: block
рд╢реИрд▓реА рдХреЛ
display: block
рдФрд░ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдпрджрд┐ рдирд╣реАрдВ, рддреЛ
display: none
рдФрд░ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдорд╛рди рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛:
<h3 style={{display: !props.question && "none"}}>Question: {props.question}</h3>
рдпрд╣рд╛рдБ,
display: none
рд╢реИрд▓реА рддрддреНрд╡ рдХреЛ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИ рдпрджрд┐
props
рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
question
рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛
display
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдЪрд┐рдд рдШрдЯрдХ рдЬрд┐рд╕рд╕реЗ рдкреНрд░рд╢реНрди рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИрдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
Joke
рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рд╕рднреА рддрддреНрд╡ рд╕рдорд╛рди рджрд┐рдЦрддреЗ рд╣реИрдВред рдЪрд▓реЛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдХреЗрд╡рд▓
punchLine
рд╕рдВрдкрддреНрддрд┐ рд╕реЗ
punchLine
рд╣реИрдВред рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреА рд╣рдордиреЗ рдКрдкрд░ рдЬрд╛рдВрдЪ рдХреА рдереАред рдпрд╣рд╛рдБ
Joke
рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХреЛрдб рд╣реИ:
import React from "react" function Joke(props) { return ( <div> <h3 style={{display: !props.question && "none"}}>Question: {props.question}</h3> <h3 style={{color: !props.question && "#888888"}}>Answer: {props.punchLine}</h3> <hr/> </div> ) } export default Joke
рдФрд░ рдпрд╣рд╛рдВ рд╡рд╣ рд╣реИ рдЬреЛ рдЕрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдРрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдирд╛ рдЬреЛ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЕрдм рд╣рдордиреЗ
Joke
рдШрдЯрдХ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдмрд╣реБрдореБрдЦреА рдФрд░ рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдЗрд╕ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд╛рда рдореЗрдВ, рд╣рдо рдЧреБрдгреЛрдВ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреМрд╢рд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рдереЗред рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХрдИ рд╕рдорд╛рди рдорд╛рд░реНрдХрдЕрдк рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ JSX рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдо рдорд╛рд░реНрдХрдЕрдк рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реБрдП рдорд╛рдирдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдпрджрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдХ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред