1- import { useEffect , useState } from "react"
1+ import { useEffect , useState } from "react" ;
22
33// 1. Не передать ничего
44function UseEffectPage1 ( ) {
5- const [ , setValue ] = useState ( { } )
5+ const [ , setValue ] = useState ( { } ) ;
66
77 useEffect ( ( ) => {
8- // Эффект срабатывает при монтировании компонента и при каждом рендере.
9- console . log ( ' Срабатываю на каждый рендер' )
10- } )
8+ // Эффект срабатывает при монтировании компонента и при каждом рендере.
9+ console . log ( " Срабатываю на каждый рендер" ) ;
10+ } ) ;
1111
1212 return (
1313 < div >
1414 < h1 > useEffect</ h1 >
1515 < button onClick = { ( ) => setValue ( { } ) } > Обновить состояние</ button >
1616 </ div >
17- )
17+ ) ;
1818}
1919
2020// 2. Передать пустой массив - []
2121function UseEffectPage2 ( ) {
22- const [ count , setCount ] = useState ( 0 )
22+ const [ count , setCount ] = useState ( 0 ) ;
2323
2424 useEffect ( ( ) => {
25- // Эффект срабатывает только при монтировании компонента.
26- console . log ( ' Сработаю 1 раз' )
27- } , [ ] )
25+ // Эффект срабатывает только при монтировании компонента.
26+ console . log ( " Сработаю 1 раз" ) ;
27+ } , [ ] ) ;
2828
2929 return (
3030 < div >
3131 < h1 > useEffect</ h1 >
3232 < h3 > { count } </ h3 >
3333 < button onClick = { ( ) => setCount ( ( prev ) => prev + 1 ) } > + 1</ button >
3434 </ div >
35- )
35+ ) ;
3636}
3737
3838// 3. Передать массив с переменными для отслеживания - [value]
@@ -44,14 +44,13 @@ function UseEffectPage3({ userId = 2 }) {
4444 useEffect ( ( ) => {
4545 if ( ! userId ) return ;
4646
47- console . log ( ' Сработаю при монтировании и изменении userId' )
47+ console . log ( " Сработаю при монтировании и изменении userId" ) ;
4848
4949 fetch ( `https://jsonplaceholder.typicode.com/users/${ userId } ` )
50- . then ( response => response . json )
51- . then ( json => setUser ( json ) )
52- . catch ( error => console . error ( 'Ошибка загрузки:' , error ) )
53- . finally ( ( ) => setIsLoading ( false ) )
54-
50+ . then ( ( response ) => response . json )
51+ . then ( ( json ) => setUser ( json ) )
52+ . catch ( ( error ) => console . error ( "Ошибка загрузки:" , error ) )
53+ . finally ( ( ) => setIsLoading ( false ) ) ;
5554 } , [ userId ] ) ; // Запускается заново, если изменился userId
5655
5756 if ( isLoading ) return < div > Загрузка...</ div > ;
@@ -71,18 +70,18 @@ function UseEffectPage() {
7170 const [ time , setTime ] = useState ( new Date ( ) . toLocaleTimeString ( ) ) ;
7271
7372 useEffect ( ( ) => {
74- console . log ( ' ✅ Таймер запущен' ) ;
75-
73+ console . log ( " ✅ Таймер запущен" ) ;
74+
7675 // Запускаем интервал при монтировании
7776 const intervalId = setInterval ( ( ) => {
7877 const currentTime = new Date ( ) . toLocaleTimeString ( ) ;
7978 setTime ( currentTime ) ;
80- console . log ( ' 🕒 Время обновлено:' , currentTime ) ;
79+ console . log ( " 🕒 Время обновлено:" , currentTime ) ;
8180 } , 1000 ) ;
8281
8382 // Функция очистки
8483 return ( ) => {
85- console . log ( ' Таймер остановлен' ) ;
84+ console . log ( " Таймер остановлен" ) ;
8685 clearInterval ( intervalId ) ;
8786 } ;
8887 } , [ ] ) ; // Пустой массив - эффект только при монтировании/размонтировании
@@ -94,5 +93,4 @@ function UseEffectPage() {
9493 ) ;
9594}
9695
97-
98- export default UseEffectPage
96+ export default UseEffectPage ;
0 commit comments