5 методов динамического обновления времени «последнего обновления» в ReactJS

В веб-разработке отображение времени последнего обновления является общим требованием для многих приложений. ReactJS, популярная библиотека JavaScript, предлагает несколько методов динамического обновления времени последнего обновления. В этом сообщении блога мы рассмотрим пять различных подходов, а также примеры кода, которые вы можете использовать для реализации этой функциональности в своих проектах ReactJS.

Метод 1: использование setInterval()

import React, { useState, useEffect } from 'react';
function LastUpdatedTime() {
  const [currentTime, setCurrentTime] = useState(new Date());
  useEffect(() => {
    const timer = setInterval(() => {
      setCurrentTime(new Date());
    }, 1000);
    return () => {
      clearInterval(timer);
    };
  }, []);
  return <p>Last Updated: {currentTime.toString()}</p>;
}
export default LastUpdatedTime;

Метод 2: использование библиотеки Moment.js

import React, { useState, useEffect } from 'react';
import moment from 'moment';
function LastUpdatedTime() {
  const [currentTime, setCurrentTime] = useState(moment());
  useEffect(() => {
    const timer = setInterval(() => {
      setCurrentTime(moment());
    }, 1000);
    return () => {
      clearInterval(timer);
    };
  }, []);
  return <p>Last Updated: {currentTime.format('LLL')}</p>;
}
export default LastUpdatedTime;

Метод 3. Использование библиотеки React Moment

import React, { useState, useEffect } from 'react';
import Moment from 'react-moment';
function LastUpdatedTime() {
  const [currentTime, setCurrentTime] = useState(new Date());
  useEffect(() => {
    const timer = setInterval(() => {
      setCurrentTime(new Date());
    }, 1000);
    return () => {
      clearInterval(timer);
    };
  }, []);
  return (
    <p>
      Last Updated: <Moment format="LLL">{currentTime}</Moment>
    </p>
  );
}
export default LastUpdatedTime;

Метод 4. Использование window.requestAnimationFrame()

import React, { useState, useEffect } from 'react';
function LastUpdatedTime() {
  const [currentTime, setCurrentTime] = useState(new Date());
  useEffect(() => {
    let animationFrameId;
    const updateCurrentTime = () => {
      setCurrentTime(new Date());
      animationFrameId = window.requestAnimationFrame(updateCurrentTime);
    };
    animationFrameId = window.requestAnimationFrame(updateCurrentTime);
    return () => {
      window.cancelAnimationFrame(animationFrameId);
    };
  }, []);
  return <p>Last Updated: {currentTime.toString()}</p>;
}
export default LastUpdatedTime;

Метод 5: использование библиотеки Date-fns

import React, { useState, useEffect } from 'react';
import { format } from 'date-fns';
function LastUpdatedTime() {
  const [currentTime, setCurrentTime] = useState(new Date());
  useEffect(() => {
    const timer = setInterval(() => {
      setCurrentTime(new Date());
    }, 1000);
    return () => {
      clearInterval(timer);
    };
  }, []);
  return (
    <p>
      Last Updated: {format(currentTime, 'MMMM dd, yyyy - HH:mm:ss')}
    </p>
  );
}
export default LastUpdatedTime;

В этой статье мы рассмотрели пять различных методов динамического обновления времени последнего обновления в ReactJS. Каждый метод предлагает свои преимущества и может использоваться в зависимости от требований вашего проекта. Независимо от того, решите ли вы использовать функцию setInterval(), библиотеку Moment.js, библиотеку React Moment, window.requestAnimationFrame() или библиотеку Date-fns, вы легко сможете добиться желаемой функциональности. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует потребностям вашего проекта.