Начиная с create-react-app.

Запустите следующий процесс, чтобы получить шаблонный код, запустить приложение React в вашей системе и настроить среду.

  1. Перейти к терминалу на Mac (или терминал WSL в Windows)
  2. Перейдите в соответствующий каталог и выполните,
$ sudo npm install -g create-react-app
$ npx create-react-app my-clock-app

3. Перейдите в каталог my-clock-app и выполните,

$ cd my-clock-app
$ npm start

Теперь, когда у вас есть приложение React, работающее на локальном «https: // localhost: 3000», и ваша среда разработки настроена со следующим экраном, давайте начнем пошаговый процесс.

Очистите каталог

Удалите все файлы из каталога src и создайте следующие файлы в src,

  1. index.js
  2. style.css

Создайте компоненты каталога в src, где будут храниться все файлы, связанные с компонентами. В каталоге компонентов создайте следующие файлы:

  1. Title.js
  2. Main.js
  3. Clock.js

После создания всего каталог вашего проекта должен выглядеть следующим образом:

|- node_modules
|- public
|- src
   |- components
      |- Title.js
      |- Main.js
      |- Clock.js
   |- index.js
   |- style.css
|- package-lock.json
|- package.json
|- README.md

Теперь, когда мы настроили все наши файлы и каталог проекта на месте, давайте приступим к редактированию файлов и написанию кода для запуска и запуска приложения часов,

Редактирование файлов

Title.js

import React, {Component} from 'react';
class Title extends Component{
    render(){
        return (
        <h1>{this.props.title}</h1>
        )
    }
}
export default Title

Здесь мы просто визуализируем заголовок страницы с выражением JSX ‹h1›,
реквизиты будут передаваться из текущего состояния приложения, которое мы будем вызывать в Main.js. Как вы поняли из кода, мы создаем компонент заголовка, который будет отображать заголовок с тегом HTML ‹h1›.

Clock.js

import React, {Component} from 'react';
import '../style.css';
class Clock extends Component{
    constructor(props){
        super(props);
        this.state = {date: new Date()};
    }
componentDidMount(){
        this.timer = setInterval(
            () => this.setState({date: new Date()}),
            1000
        );
    }
componentWillUnmount(){
        clearInterval(this.timer);
    }
render(){
        return( 
            <div class="clock">
                <div class="timer">{this.state.date.toLocaleTimeString()}</div>
            </div>
        )
    }
}
export default Clock

Здесь находится основная логика того, как должны работать часы. Первоначальное определение конструктора, который установит текущее состояние в объект Date. Здесь мы определим жизненный цикл компонента, компонент, который будет отображать информацию о часах в DOM.

componentDidMount() вызывается сразу после того, как компонент смонтирован (вставлен в дерево). setState запустит рендеринг и произойдет до того, как браузер обновит экран.

componentWillUnmount() вызывается непосредственно перед размонтированием и уничтожением компонента. Код выполнит необходимую очистку в этом методе.

Функция render() не изменяет состояние компонента, она возвращает тот же результат при каждом вызове и не взаимодействует напрямую с браузером.

И, наконец, мы возвращаем компонент Clock, чтобы его можно было импортировать и использовать при рендеринге DOM.

Main.js

import React, {Component} from 'react';
import Title from './Title';
import Clock from './Clock';
import '../style.css';
class Main extends Component{
    render(){
        return(  
        <div>
            <Title title="Digital Clock"></Title>
            <Clock clock="ClockData"></Clock>
        </div>
        )
        
    }
}
export default Main

Компонент Main объединяет все модульные компоненты вместе как JSX.

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Main from './Components/Main';
ReactDOM.render(<Main />, document.getElementById('root'));

index.js - это традиционная и актуальная точка входа для всех узловых приложений. Здесь, в React, у него просто есть код того, что и где рендерить. Итак, мы отрендерим наш Main компонент в корневом объекте DOM.

style.css

.clock{
    align-self: center;
    display: grid;
    position: absolute;
 top:50%;
 left: 50%;
 transform: translateX(-50%) translateY(-50%);
    width: 1000px;
    height: 300px;
    border: 2cm;
    border-block-color: black;
}
h1{
    text-align: center;
    font-family: 'Courier New', Courier, monospace;
    font-size: 7em;
    
}
.timer{
    text-align: center;
    background-color: aquamarine;
    font-family: monospace;
    font-size: 8em;
    padding-top: 0.8em;
}

Запуск приложения,

Перейдите в каталог проекта в Terminal / bash и выполните следующую команду:

$ npm start

Приложение начнет работать на https: // localhost: 3000 /.