在 React 中创建时钟
Creating Clock in React
我有一个网站,我想在其中一个页面上放置一个实时时钟。
我已经使用钩子编写了代码,但我知道在这种情况下使用钩子对性能不利,因为每秒都会重新呈现状态。
是否有资源密集度较低的解决方案?
import { useEffect, useState } from 'react'
export default function Footer() {
const [time, setTime] = useState()
useEffect(() => {
setInterval(() => {
const dateObject = new Date()
const hour = dateObject.getHours()
const minute = dateObject.getMinutes()
const second = dateObject.getSeconds()
const currentTime = hour + ' : ' + minute + ' : ' + second
setTime(currentTime)
}, 1000)
}, [])
return <div>{time}</div>
}
您考虑性能绝对是件好事,但在这种情况下我不会改变任何东西。为了改变呈现到屏幕上的内容(在本例中是时钟的文本),必须重新呈现组件以反映其状态的变化,这并不是一件坏事。每次组件重新渲染时,它不会导致父组件重新渲染,因此在性能方面我们做得很好。
我有一个网站,我想在其中一个页面上放置一个实时时钟。 我已经使用钩子编写了代码,但我知道在这种情况下使用钩子对性能不利,因为每秒都会重新呈现状态。 是否有资源密集度较低的解决方案?
import { useEffect, useState } from 'react'
export default function Footer() {
const [time, setTime] = useState()
useEffect(() => {
setInterval(() => {
const dateObject = new Date()
const hour = dateObject.getHours()
const minute = dateObject.getMinutes()
const second = dateObject.getSeconds()
const currentTime = hour + ' : ' + minute + ' : ' + second
setTime(currentTime)
}, 1000)
}, [])
return <div>{time}</div>
}
您考虑性能绝对是件好事,但在这种情况下我不会改变任何东西。为了改变呈现到屏幕上的内容(在本例中是时钟的文本),必须重新呈现组件以反映其状态的变化,这并不是一件坏事。每次组件重新渲染时,它不会导致父组件重新渲染,因此在性能方面我们做得很好。