Executando verificação de segurança...
3

Desenvolvimento de um Relógio Digital em React ⏰🚀

Olá! Hoje eu gostaria de compartilhar com vocês um pequeno projeto que desenvolvi que deu o começo para meus estudos em React. Explicarei como eu desenvolvi e fiquem à vontade para darem sugestões a este projeto.

Imagem do relógio

Configuração do Projeto 🏗️

Antes de iniciar este projeto, eu já tinha instalado o Node.js, mas quem quiser é só acessar o site deles.

Para baixar o React, utilizei o seguinte comando:

npx create-react-app clock

Para iniciar o projeto no navegador, fiz o uso deste comando:

npm start

Este comando iniciará o servidor de desenvolvimento e abrirá automaticamente uma nova janela do navegador com o meu React.

Após isso, com o React devidamente baixado, os arquivos principais estão no diretório src, na qual posso editar esses arquivos para começar a construir meu projeto.

Organizei o projeto em arquivos como App.js, Clock.js, e estilos como App.css, Clock.css, e reset.css (com este último arquivo sendo para retirar o style padrão dos navegadores).

Estrutura de Componentes 🔄

Criei o componente "Clock" para lidar com a exibição e a funcionalidade do relógio digital, enquanto o componente principal App contém a estrutura geral.

Para criar esse design, o componente Clock é dividido em várias className: clock__space-button, clock__button, clock__display, display__hours, clock__supports, e support. Com eles, eu consegui criar cada parte do relógio para formar esse visual.

Funcionalidade do Relógio ⌚

constructor(props) {
    super(props);
    this.state = {
      currentTime: '00:00:00'
    }
  }

  componentDidMount() {
    setInterval(() => {
      this.setState({ currentTime: new Date().toLocaleTimeString() })
    }, 1000 );
  }

  render() {
    return(
      <div className='clock'>
        <div className='clock__space-button'>
          <div className='clock__button'>
          </div>
        </div>
        <div className='clock__display'>
          <div className='display__hours'>
            <h1>{this.state.currentTime}</h1>
          </div>
        </div>
        <div className='clock__supports'>
          <div className='support'></div>
          <div className='support'></div>
        </div>
      </div>
    );
  }

O componente Clock utiliza o estado do React para armazenar a hora atual (currentTime). O estado inicial é definido como '00:00:00'. O método de ciclo de vida componentDidMount é utilizado para obter a hora atual com toLocaleTimeString, além de atualizar o estado a cada segundo usando setInterval, garantindo que a exibição do relógio esteja sempre atualizada.

A hora é exibida dentro da seção display__hours usando uma tag h1.

Depois é exibida no App.js com o componente Clock.

render() {
    return(
      <div className='container'>
        <div className='container__content'>
          <Clock/>
        </div>
      </div>
    );
  }

Conclusão

Mesmo sendo simples e desenvolvido por alguém que esta começando no React, espero que curtem o projeto.

Vocês podem ver o resultado no Vercel e no repositório


꧁ 📕 Desenvolvedora: Aline Espindola 📕 ꧂

Behance
Linkedin

Carregando publicação patrocinada...
2

Muito interessante! Class components são uma maneira clássica de escrever componentes no React, mas vale a pena considerar algumas coisas ao usá-los.
Uma das principais razões pelas quais a comunidade do React tem migrado para o uso de functional components e hooks é por causa da simplicidade e da facilidade de entender o código.
Os functional components tendem a ser mais simples e concisos. Eles são mais fáceis de testar e entender, e com a introdução dos hooks, você pode facilmente adicionar funcionalidades como state e efeitos sem a necessidade de converter seu componente em uma class.
A própria documentação oficial do React recomenda que seu uso seja descontinuado.
Continue explorando e aprendendo sobre as melhores práticas do React. Você está no caminho certo!

1

Muito obrigada!

Sim, meu próximo tópico são os hooks. Como não entrei nesse assunto ainda, bem interessante de saber que eles são mais legíveis e simples, me anima continuar nessa trilha. É satisfatório ver um método de desenvolvimento ser cada vez mais sendo refinado.

Estou treinando bastante essa base para conhecer o propósito do React e acredito que fique ainda mais fácil entender os hooks posteriormente.

Obrigada pela sugestão, conselhos como este deixa ainda mais rico o caminho de aprendizagem.

1

interessante essa abordagem com classes, mas já antiga. Onde voce está aprendendo React que apresenta primeiro essa abordagem? Pergunto porque gostaria de ver mais por curiosidade.

1

Estou experimentando um curso da Udemy de React, na qual infelizmente não estou curtindo tanto quanto eu gostaria. Por isso estou lendo e vendo vídeos em outros lugares sobre para conhecer mais visões que as pessoas tem desta biblioteca.

Aham, é uma abordagem mais antiga, mas acredito que o curso tenha ensinado esse modo para compreendermos mais a base do React. O próximo módulo são os hooks.

Valeu por compartilhar informação!