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 => - {post.title}
)}
+}
function App() {
+ const [tracker,setTracker] = React.useState(false);
+ const [dataFetcher,setDataFetcher] = React.useState(false);
+
return (
<>
- {/* Добавьте тестовый контент для проверки */}
Hello, React!
+
+
+
+ { tracker && }
+
+ { dataFetcher && }
>
)
}