From c9759fbfc7c0dcfedefa65f221fe53be7e9736ba Mon Sep 17 00:00:00 2001 From: Laktionov Anton Date: Thu, 30 Apr 2026 21:52:52 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B5=D0=BB=D0=B0=D0=BB=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=B7=20=D1=81=20=D0=BF=D0=BE=D1=81=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 2 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 6bf3ac6..85dfb01 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,10 +1,96 @@ -// удаляем все, оставляя лишь пустую функцию App ниже +import React from 'react' +import styles from './App.module.scss' + +class Clock extends React.Component { + constructor(props) { + super(props); + this.state = { date: new Date() }; + } + componentDidMount() { + this.timerId = setInterval( () => this.tick(), 1000); + } + componentWillUnmount() { + clearInterval(this.timerId) + } + tick() { + this.setState({ date: new Date() }) + } + render() { + return
{this.state.date.toLocaleTimeString()}
+ } +} + +function Clock2() { + const [date, setDate] = React.useState(new Date()); + + React.useEffect(()=>{ + const timerId = setInterval(()=> setDate(new Date()),1000); + return () => clearInterval(timerId); + },[]) + + return
{date.toLocaleTimeString()}
+} + +function MouseTracker() { + const [x,setX] = React.useState(0); + const [y,setY] = React.useState(0); + + const mouseMoveHandler = event => { + setX(event.clientX); + setY(event.clientY); + } + + React.useEffect(()=>{ + document.addEventListener('mousemove', mouseMoveHandler); + return () => { + document.removeEventListener('mousemove',mouseMoveHandler); + } + },[]); + + return
+

Координаты мыши:
X:{x}, Y:{y}

+
+} + +function DataFetcher() { + const [posts,setPosts] = React.useState([]); + const [users,setUsers] = React.useState([]); + + const getPosts = async () => { + const response = await fetch('https://jsonplaceholder.typicode.com/posts'); + const data = await response.json(); + setUsers(data.reduce((acc, value) => { + if (!(value.userId in acc)) + return [...acc,value.userId] + return acc + })) + console.log(users); + setPosts(data.slice(1,10)); + + } + + React.useEffect(() => { + console.log("Компонент создан"); + getPosts(); + return () => {console.log("Компонент удален");setPosts([])}; + },[]) + + return
    {posts.map(post =>
  1. {post.title}
  2. )}
+} function App() { + const [tracker,setTracker] = React.useState(false); + const [dataFetcher,setDataFetcher] = React.useState(false); + return ( <> - {/* Добавьте тестовый контент для проверки */}

Hello, React!

+ + + + { tracker && } + + { dataFetcher && } ) }