Build a Stopwatch using React in 20 minutes! ⏱

Поделиться
HTML-код
  • Опубликовано: 28 июн 2024
  • #reactjs #tutorial #course
    This is a beginner's React project that uses only useState, useEffect, and useRef.
    00:00:00 imports/exports
    00:01:17 useState + useRef
    00:02:48 function declarations
    00:03:39 HTML
    00:05:45 CSS
    00:11:45 functions
    00:14:06 useEffect()
    00:16:10 formatTime()
    00:19:19 conclusion

Комментарии • 44

  • @BroCodez
    @BroCodez  5 месяцев назад +23

    import Stopwatch from './Stopwatch.jsx';
    function App() {
    return ();
    }
    export default App;
    import React, {useState, useEffect, useRef} from 'react';
    function Stopwatch(){
    const [isRunning, setIsRunning] = useState(false);
    const [elapsedTime, setElapsedTime] = useState(0);
    const intervalIdRef = useRef(null);
    const startTimeRef = useRef(0);
    useEffect(() => {
    if(isRunning){
    intervalIdRef.current = setInterval(() => {
    setElapsedTime(Date.now() - startTimeRef.current);
    }, 10);
    }
    return () => {
    clearInterval(intervalIdRef.current);
    }
    }, [isRunning]);
    function start(){
    setIsRunning(true);
    startTimeRef.current = Date.now() - elapsedTime;
    }
    function stop(){
    setIsRunning(false);
    }
    function reset(){
    setElapsedTime(0);
    setIsRunning(false);
    }
    function formatTime(){
    let hours = Math.floor(elapsedTime / (1000 * 60 * 60));
    let minutes = Math.floor(elapsedTime / (1000 * 60) % 60);
    let seconds = Math.floor(elapsedTime / (1000) % 60);
    let milliseconds = Math.floor((elapsedTime % 1000) / 10);
    hours = String(hours).padStart(2, "0");
    minutes = String(minutes).padStart(2, "0");
    seconds = String(seconds).padStart(2, "0");
    milliseconds = String(milliseconds).padStart(2, "0");
    return `${minutes}:${seconds}:${milliseconds}`;
    }
    return(

    {formatTime()}

    Start
    Stop
    Reset


    );
    }
    export default Stopwatch
    body{
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: hsl(0, 0%, 95%);
    }
    .stopwatch{
    display: flex;
    flex-direction: column;
    align-items: center;
    border: 5px solid;
    border-radius: 50px;
    background-color: white;
    padding: 30px;
    }
    .display{
    font-size: 5rem;
    font-family: monospace;
    font-weight: bold;
    color: hsl(0, 0%, 30%);
    text-shadow: 2px 2px 2px hsla(0, 0%, 0%, 0.75);
    margin-bottom: 25px;
    }
    .controls button{
    font-size: 1.5rem;
    font-weight: bold;
    padding: 10px 20px;
    margin: 5px;
    min-width: 125px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    color: white;
    transition: background-color 0.5s ease;
    }
    .start-button{
    background-color: hsl(115, 100%, 40%);
    }
    .start-button:hover{
    background-color: hsl(115, 100%, 35%);
    }
    .stop-button{
    background-color: hsl(10, 90%, 50%);
    }
    .stop-button:hover{
    background-color: hsl(10, 90%, 45%);
    }
    .reset-button{
    background-color: hsl(205, 90%, 60%);
    }
    .reset-button:hover{
    background-color: hsl(205, 90%, 55%);
    }

    • @RealRower1
      @RealRower1 5 месяцев назад +1

      hey Bro Code can you make a course about lua @BroCodez

    • @avanguly4843
      @avanguly4843 5 месяцев назад +1

      i dont think he plays roblox lil bro@@RealRower1

    • @l213dhanesh3
      @l213dhanesh3 5 месяцев назад +1

      Where are u code bro help me with angular js..... Missing u bro mava

    • @-_SleepAndEat_-
      @-_SleepAndEat_- 2 месяца назад

      Bro can you do Kali Linux ?

  • @YoniYo12
    @YoniYo12 2 месяца назад +2

    Best project tutorial ever! simple and to the point, thanks Bro

  • @ejebeueh9113
    @ejebeueh9113 5 месяцев назад +44

    So this bro gets 830 views while dancing toys get millions what a shame

  • @Dylan12kpo1k2pDylan
    @Dylan12kpo1k2pDylan 5 месяцев назад +8

    You beautiful man, keep adding to this playlist

  • @siddhantraj9425
    @siddhantraj9425 2 месяца назад

    Thanks man. Helped a lot

  • @samaali6589
    @samaali6589 Месяц назад

    Keep it up! Appreciate the efforts

  • @tofu7736
    @tofu7736 5 месяцев назад +4

    Just waiting for 12:00:00 hours React video to come
    By the way I have watched all the web development courses you’ve been uploading.
    Thanks bro because of you i can understand and learn web dev.
    Big heart for BRO ARMY 💜💜💜💜💜

    • @nesa6582
      @nesa6582 4 месяца назад +1

      Its over, it is only 4h. :D

  • @abdulbasit9364
    @abdulbasit9364 2 месяца назад

    Bro you drop ur crown 👑❤

  • @rishabhkedia9304
    @rishabhkedia9304 5 месяцев назад +3

    Please make Reactjs projects as well

  • @user-jr7lt8fk2b
    @user-jr7lt8fk2b 3 месяца назад

    hey bro
    can u make a course about laravel for beginners
    u r so good and now i only can learn anything from you
    thanks a lot

  • @java_learn6447
    @java_learn6447 4 месяца назад +1

    Sir please upload react form validations

  • @Ashwini243
    @Ashwini243 4 месяца назад +3

    Hi, I am based in the USA.I really love your videos and they are interview oriented.
    Can you explain why you used useRef variable?

    • @Prateek_Mantry
      @Prateek_Mantry 2 месяца назад

      useRef is used to stop re-rendering your component when the variable(ref) is changed, which is not possible using useState().

  • @worldnothing3721
    @worldnothing3721 5 месяцев назад +1

    bro are bringing backend development also

  • @HabibHaris-fe7fy
    @HabibHaris-fe7fy 4 месяца назад +1

    please sir make a playlist on PANDAS, NUMPY please🌸
    🌺🌼

  • @Prateek_Mantry
    @Prateek_Mantry 2 месяца назад +1

    Hi Bro....Please make more videos.

  • @Delicatamente
    @Delicatamente 2 месяца назад +1

    So, technicaly, timer re-renders every 10 miliseconds, just because of changing useState variable "elapsedTime" in Stopwatch component, what provide full re-render of Stopwatch component?
    Or re-render happens as a result of changing that useState variable "elapsedTime", which is mentioned in function "formatTime", which (this function) is mapped to timer component? And because of this bound React re-renders component?
    Can someone explain me this technical details?

  • @1CDzy
    @1CDzy 5 месяцев назад +1

    bro, please do C# on NET. development

  • @astartesidon609
    @astartesidon609 Месяц назад

    so we can conclude that even if we stop the countdown for a couple of minutes still the time in between when we restart still gonna carry over because we based our elapsed time only on a date?

  • @yogii1108
    @yogii1108 3 месяца назад +1

    bro start next js using JavaScript waiting to learn from your channel

  • @ranjithkumar7896
    @ranjithkumar7896 4 месяца назад +2

    Bro continue the react series, enjoying it try to upload next videos faster

  • @tasfin660
    @tasfin660 Месяц назад

    I want more react videos

  • @arkartm9989
    @arkartm9989 Месяц назад

    True Chad bro..❤

  • @ejebeueh9113
    @ejebeueh9113 5 месяцев назад +1

    Bro please i need help I just started learning jave script and I'm watching your full course so when I linked my css ,js and HTML and tried the same code that you wrote and opened it with live server nothing appeared on the web and its console it says error404
    Sorry for my poor words
    I hope that you understand what I mean, thanks

    • @aman1589
      @aman1589 4 месяца назад

      did u install live server?

  • @its-SK
    @its-SK 5 месяцев назад +2

    hey bro code I am facing difficulties while learning js what should i do?

    • @1CDzy
      @1CDzy 5 месяцев назад

      look at the documentation on JS, maybe it will help

    • @anandv1391
      @anandv1391 2 месяца назад

      Mbuf

  • @RealRower1
    @RealRower1 5 месяцев назад +1

    hey Bro Code can you make a course about lua

    • @RealRower1
      @RealRower1 5 месяцев назад

      ye but atleast he has something to post about and i think he is gonna get alot of views because lot of people want to learn lua for game dev in roblox and there is not a good course to learning it so he will be the first

  • @ACCOUNT72197
    @ACCOUNT72197 5 месяцев назад

    Hey i just wanted to say your last 5 videos don't appear in my sub feed. What is going on

  • @BishanTamang-rk5ji
    @BishanTamang-rk5ji 5 месяцев назад +2

    Make java 2024 plz bro code love from Nepal 💓💓

  • @_amonimus_
    @_amonimus_ 3 месяца назад

    bro how many languages do you know

  • @jacklagos936
    @jacklagos936 5 месяцев назад

    Bring parallax plz

  • @Beanbag59
    @Beanbag59 4 месяца назад

    Do u tutor

  • @reynaldobuscagan7731
    @reynaldobuscagan7731 2 месяца назад

    Hello, I'm a beginner I wonder what app you use, is it html or eclipse?