Вы работали над проектом, и вы хотели показать дату и время жить, может быть, на вашей навабре или что-то в этом роде?
Похоже, длинный выстрел? Вы будете удивлены, узнав, что это не так, если вы создаете систему для компании – банк в моем случае, школа или больницу, вы окажетесь нуждаться в этом маленьком трюке
Но кому нужны часы, есть один на каждом ПК и мобильном телефоне, верно? Ну иногда веб-сайты любят себе сами правильно
Так что давайте просто попадаем в это
Мы начнем с помощью клонирования небольшой демо, я уже создал для вас
В вашем терминале убедитесь, что вы находитесь в правильном каталоге и запустите эти следующие строки
Первый шаг: клонировать репо в своем каталоге
Git Clone https://github.com/ahmedsarhan/live-watch.git.git.git.git.git.git
Теперь вы должны иметь базовую CRA с некоторыми дополнительными стилями и значками, как следует: код должен выглядеть так
import './App.css';
import { ReactComponent as ClockIcon } from './icons/clock.svg';
import { ReactComponent as CalenderIcon } from './icons/calendar.svg';
function App() {
return (
date
time
);
}
export default App;
Как вы можете видеть базовый компонент функционального приложения RACT с помощью двух значков и стилей, которые нам нужно импортировать и применять
В этой статье мы изменим эти два P Теги с датой и временем реального времени, используя только js и реагировать крюки
Второй шаг: перейти к каталогу проекта
CD Live-Watch
Третий шаг: Установите пакеты NPM REPO в вашем каталоге
NPM i
Четвертый шаг: запустить приложение
Этот шаг должен открыть ваш localhost на порт 3000 по умолчанию
Ваш сайт должен выглядеть так
Теперь давайте добраться до работы
Прежде всего, обязательно импортировать Реагировать и оба Usestate, UseScect Крючки в верхней части вашего компонента приложений со следующей строкой кода:
Импорт реагировать, {stestate, use exeffect} от «реагирования»;
Теперь мы собираемся сделать магию
Создайте состояние вашего приложения
Мы собираемся сделать Datestate, используя USESTATE крючка как следует следующим образом: const [datestate, (Новая дата ()) ;
Теперь по умолчанию начальное значение Datestate будет прямо сейчас, но он не будет обновлять, если пользователь не перезагружает страницу, поэтому нам нужно работать с этим … Но сначала давайте покажем дату пользователю
Отображение даты и времени
Как вы можете видеть, что все пользователь может видеть, это 📆 дата 🕒 часы
Но не будет лучше показать пользователю настоящую дату и время;
Так что есть много способов сделать это, но так как это небольшое приложение, которое я хотел бы сделать все это в одном штате
{' '} {dateState.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric', })}
{dateState.toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true, })}
Так что это то, как ваше приложение должно выглядеть прямо сейчас Как вы можете видеть, используя Tolocalstring JavaScript Метод который является стандартным встроенным объектом в JavaScript, мы можем изменить дату этого момента, чтобы просмотреть его различными способами
Как вы можете видеть в первом Тег абзаца Я использую Толокалинг Чтобы просмотреть дату сегодня в формате D MMM YYYY Что должно показать на дату этой статьи 5 июня 2021
Во втором абзаце я показываю время этого момента в формате h: мм a Используя 12-часовую систему
Конечно, есть разнообразные способы отображения одинаковой даты, и вы можете играть с Толкалстринг Метод больше и найти немного больше.
Теперь мы сделали его двумя третями способа, пользователь может увидеть время и дату прямо сейчас, но я немного не совсем Сейчас Больше, я бы поспорил, что это минута или два поздно от ваших устройств, если вы не обновляете страницу.
Это приводит нас к нашему последнему шагу
Делать наши часы в режиме реального времени
На этом этапе мы будем использовать второй крюк, который мы импортировали в начале этой статьи; Useffect крюк;
Мы сделаем магию с одной простой строкой кода:
useEffect(() => {
setInterval(() => setDateState(new Date()), 30000);
}, []);
Теперь в этом использовании мы обновляем дату каждые 30000 миллисекундров, что означает, что Datestate Usestate Hook будет обновляться каждые полминуты 30 секунд И наше приложение подрезут дому соответственно
Теперь, если вы посмотрите на ваше приложение и дождитесь прохождения одной минуты, вы должны увидеть часы плавно обновляются так же, как ваши нативные устройства устройства. Это может быть долго ждать, но оно того стоит 😂 🔥
Вывод
Теперь ваш код компонента приложения должен выглядеть что-то подобное
import React, { useState, useEffect } from 'react';
import './App.css';
import { ReactComponent as ClockIcon } from './icons/clock.svg';
import { ReactComponent as CalenderIcon } from './icons/calendar.svg';
function App() {
const [dateState, setDateState] = useState(new Date());
useEffect(() => {
setInterval(() => setDateState(new Date()), 30000);
}, []);
return (
{' '}
{dateState.toLocaleDateString('en-GB', {
day: 'numeric',
month: 'short',
year: 'numeric',
})}
{dateState.toLocaleString('en-US', {
hour: 'numeric',
minute: 'numeric',
hour12: true,
})}
);
}
export default App;
Вы также можете сравнить свой код до окончательного результата шахты через Окончательная филиал На том же Github repo.
Оригинал: “https://dev.to/ahmedsarhan/create-your-live-watch-and-date-in-react-js-no-3rd-party-hassle-1oa4”