[Suggestion]: Code example for StopWatch in "Referencing Values with Refs"
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 11.8k
- Forks
- 7.9k
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 11
Descripción
Summary
In the code sample of StopWatch, the DOM's re-rendering only depends on secondsPassed. now and startTime are just used for calculation. If they are treated as state, then very change on them will cause the re-rendering. Am I right?
Page
https://react.dev/learn/referencing-values-with-refs
Details
My suggestion is:
- define
nowandstartTimeasref - define
secondPassedasstate
import { useState, useRef } from "react";
export default function Stopwatch() {
const startTime = useRef(null);
const now = useRef(null);
const [secondPassed, setSecondPassed] = useState(0);
const intervalRef = useRef(null);
function handleStart() {
startTime.current = Date.now();
now.current = Date.now();
clearInterval(intervalRef.current);
intervalRef.current = setInterval(() => {
now.current = Date.now();
if (startTime != null && now != null) {
setSecondPassed((now.current - startTime.current) / 1000);
}
}, 10);
}
function handleStop() {
clearInterval(intervalRef.current);
}
return (
<>
<h1>Hi, Time passed: {secondPassed.toFixed(3)}</h1>
<button onClick={handleStart}>Start</button>
<button onClick={handleStop}>Stop</button>
</>
);
}
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Abre la página „Referencing Values with Refs“ enlazada en el issue y revisa el ejemplo „StopWatch“. Compara cómo gestiona now, startTime y secondsPassed con la división sugerida entre ref y state, y actualiza el ejemplo si corresponde. Se considera terminado cuando el código de la página muestra claramente qué valores provocan re-renderizados y cuáles se almacenan en refs.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, react
- Área
- documentation
- Tipo de issue
- Documentación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 55/100