Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
|
obrobka_podij [2024/03/11 19:30] tro создано |
obrobka_podij [2024/03/19 18:34] (текущий) tro |
||
|---|---|---|---|
| Строка 25: | Строка 25: | ||
| }; | }; | ||
| + | </ | ||
| + | ===== Об' | ||
| + | Callback-функція, | ||
| + | |||
| + | < | ||
| + | const App = () => { | ||
| + | const handleClick = (evt) => { | ||
| + | console.log(evt); | ||
| + | }; | ||
| + | |||
| + | return ( | ||
| + | <> | ||
| + | < | ||
| + | < | ||
| + | </> | ||
| + | ); | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | ===== Читання props ===== | ||
| + | Оскільки обробники подій оголошуються всередині компонента, | ||
| + | < | ||
| + | const CustomButton = ({ message, children }) => { | ||
| + | return ( | ||
| + | <button onClick={() => alert(message)}> | ||
| + | {children} | ||
| + | </ | ||
| + | ); | ||
| + | }; | ||
| + | |||
| + | const App = () => { | ||
| + | return ( | ||
| + | <> | ||
| + | < | ||
| + | Play some music | ||
| + | </ | ||
| + | < | ||
| + | Upload data | ||
| + | </ | ||
| + | </> | ||
| + | ); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | ===== Реактивність ===== | ||
| + | * Локальні змінні не зберігаються між рендерами. Коли React рендерить цей компонент вдруге, | ||
| + | * Зміни локальних змінних не викликають повторних рендерів. React не усвідомлює необхідності повторного рендерингу компонента з новими даними. | ||
| + | < | ||
| + | const App = () => { | ||
| + | let clicks = 0; | ||
| + | |||
| + | const handleClick = () => { | ||
| + | clicks = clicks + 1; | ||
| + | }; | ||
| + | |||
| + | return <button onClick={handleClick}> | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | Для оновлення компонента новими даними потрібно виконати дві речі: | ||
| + | |||
| + | * Зберегти дані між рендерами. | ||
| + | * Заставити React рендерити компонент з новими даними (повторний рендеринг). | ||
| + | |||
| + | < | ||
| + | import { useState } from ' | ||
| + | |||
| + | const App = () => { | ||
| + | const [ clicks, setClicks ] = useState(0); | ||
| + | |||
| + | const handleClick = () => { | ||
| + | // clicks = clicks + 1; | ||
| + | setClicks(clicks + 1); | ||
| + | }; | ||
| + | |||
| + | return <button onClick={handleClick}> | ||
| + | }; | ||
| + | |||
| + | </ | ||
| + | ===== Отримання події онСабміт форми ===== | ||
| + | < | ||
| + | const handlesumbint=(event)=> | ||
| + | | ||
| + | conust userEmail = event.currentTarget.elements.userMail.value; | ||
| + | | ||
| + | event.currentTarget.reset() // | ||
| + | } | ||
| </ | </ | ||