React hooks: 03 - Dùng useState() qua ví dụ đơn giản (2020)

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025
  • Một ví dụ đơn giản nhưng rất chi tiết về cách sử dụng useState() hook trong functional component của react. Đây là một video trong chuỗi react hooks của mình.
    Trong video này, mình cùng code với các bạn để chia sẻ một vài ý:
    Kinh nghiệm khi code: làm logic trước, UI sau.
    Phân tích trước khi đi vào code.
    StrictMode nó làm cho component bị render() 2 lần, bạn có biết?
    Sử dụng useState() để quản lý backgroundColor của box.
    Dùng localStorage để lưu dữ liệu và init sau khi reload trình duyệt.
    Dùng initialState dạng callback để tối ưu số lần gọi code dư thừa.
    🌐 Link tham khảo
    Slide useState lab: drive.google.c...
    Introduction to react hooks: reactjs.org/do...
    React hooks API reference: reactjs.org/do...
    React hooks FAQ: reactjs.org/do...
    StrictMode: reactjs.org/do...
    #react_hooks #react #usestate #easyfrontend
    -----
    💻 Easy Frontend 🎉
    Nơi kiến thức lập trình web frontend (html/css/javascript/reactjs) được chia sẻ một cách đơn giản, dễ hiểu mà đặc biệt là vui 😊 Với những tài liệu (tutorial) được biên soạn một cách kĩ lưỡng để giúp các bạn developer mới có thể nắm bắt vấn đề một cách nhanh chóng và hiệu quả. Từ đó nâng dần khả năng coding của các bạn lên theo thời gian.
    ❤️ Ủng hộ mình làm videos thì đóng góp tại đây nhé:
    Ủng hộ tôi: unghotoi.com/e...
    MoMo/ZaloPay: 0901 309 729
    Kết nối với mình:
    🎉Facebook: / nvhauesmn
    💻Github: github.com/pau...
    💼 LinkedIn: / haunguyenmn

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

  • @EasyFrontend
    @EasyFrontend  4 года назад +17

    Cảm ơn tất cả các bạn đã xem video của mình nhé! ❤️
    Hi vọng qua video này, các bạn học được tư duy cách code của mình.
    Hãy chia sẻ điều bạn học được qua video này bên dưới nhé! 😉

    • @thanhtung1203
      @thanhtung1203 4 года назад

      dễ hiểu quá anh ơi. anh làm video về useCallBack nữa anh nhé

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Thanh Tùng okie Tùng nhé hihi, cảm ơn bạn đã gợi ý cái hook đó cho mình nha 😍

    • @EasyFrontend
      @EasyFrontend  4 года назад

      @Lion hi Lion ơi, về tailwindcss thì a chưa sử dụng trong dự án thực tế nè, nhưng a nghĩ nếu team em thích styles này thì cứ thử nghiệm cho một dự án nhỏ xem sao rồi quyết định nhé Lion hihi 😉

  • @tanghieu392
    @tanghieu392 Год назад

    xem video của anh có 1 tiếng mà em hiểu được sâu hơn , trước e cũng học nhưng chỉ hiểu được sơ sơ

  • @huynguyen-yp4hn
    @huynguyen-yp4hn 4 года назад +1

    Giảng hay quá anh, xúc tích, trọng tâm, còn chỉ thêm mẹo các thứ nữa, tuyệt vời!

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn Huy nhiều nhé! 😍Rất vui vì video hữu ích cho Huy nè hehe

  • @buituandung4063
    @buituandung4063 4 года назад

    bài của anh rất hay vừa đưa kiến thức vừa đưa kinh nghiệm thực tế

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Bùi tuấn Dũng Yeah cảm ơn em nhiều nhé Dũng, rất vui vì video hữu ích với em nè 😉

  • @minhbaotran180
    @minhbaotran180 2 года назад

    dạ, em cảm ơn anh rất nhiều, anh giảng rất hay và dễ hiểu ạ

  • @thanhnguyencong-vk4vv
    @thanhnguyencong-vk4vv 4 года назад

    bài giảng của anh rất dễ hiểu và đầy đủ ạ, em cảm ơn

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Yeahhhh cảm ơn em nhiều nhé em ơiiiii 😍

  • @chiensteven7711
    @chiensteven7711 4 года назад

    Nhờ anh mà em khai sáng được nhiều điều về React Hook, bớt lúng túng hơn khi tiếp cận Function Component. Chúc anh nhiều sức khỏe. Cảm ơn anh!

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Cảm ơn em đã phản hồi cho anh biết nhé Chiến, a rất vui khi videos của anh giúp được em nè!
      Chúc em nhiều sức khoẻ và học tập tốt nhé 🙂

  • @MrChaucp
    @MrChaucp 4 года назад

    Cảm ơn nhiều nhé, ko những kiến thức về hook mà rất nhiều tip, trick khác trong video để cải thiện coding

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Wohoo ngon lành, cảm ơn Châu nhiều nhé, rất vui video hữu ích vs bạn nè 😉

  • @lichle6357
    @lichle6357 4 года назад

    Bài của bác dạy rất hay và dễ hiểu. Mong chờ bác ra thêm video về series Hook này để anh em mở mang được kiến thức sử dụng khi làm việc. Cảm ơn bác rất nhiều !!!

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Lịch Lê Cảm ơn Lịch rất nhiều vì đã chia sẻ cho mình biết nhé, mình đang làm videos usestate lab về todo list với option list, cho mọi người thấy nhiều tình huống sử dụng hơn hehe hi vọng mai lại tiếp tục có video mới 😉

  • @martcoc5696
    @martcoc5696 4 года назад

    Bạn chia sẻ rất dễ hiểu, kiến thức mới rất hay! Cảm ơn bạn!

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Yeahhhh cảm ơn bạn nhiều nhé, rất vui vì bạn thích nó nè! Tiếp tục đồng hành với mình trong những videos hooks tiếp theo nữa nhen, hiện nó có 16 videos về hooks rồi á 🙂

    • @martcoc5696
      @martcoc5696 4 года назад

      @@EasyFrontend Nhất định rồi :) vì mình đang cần làm website bán hàng bằng React nên sẽ học hỏi từ bạn thật nhiều :) Cảm ơn bạn vì nhiều kiến thức mới và chia sẻ rất có tâm! Chúc bạn luôn khỏe mạnh, may mắn và hạnh phúc!

  • @xuannghiemnguyen3048
    @xuannghiemnguyen3048 4 года назад +1

    Em rất hi vọng anh duy trì những chuỗi video bổ ích như thế này

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Wohoooooo cảm ơn em nhiều nhé Nghiêm ơi 😍

  • @jamesnguyen994
    @jamesnguyen994 3 года назад

    Anh giảng chi tiết dễ hiểu lắm chúc anh ra đc nhiều video hơn nữa ạ ❤❤ Cảm ơn anh nhiều

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      hehee cảm ơn em nhiều nhiều nhé ❤️

  • @tnanhpt
    @tnanhpt 4 года назад

    kênh quá có tâm, mong anh chia sẻ nhiều video nhé

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn em nhiều nhé Anh! ❤️ Sáng mai lại có thêm một bài tập ví dụ về useState() nữa nhen 😉

  • @ienngongoc3209
    @ienngongoc3209 4 года назад

    Cảm ơn anh nhiều, thật sự dễ hiểu và dạy có tâm ghê

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn em nhiều nhé Điện ơi 😍

  • @nhotan98
    @nhotan98 3 года назад +1

    Cảm ơn a !!! Video dễ hiểu lắm ạ !

  • @anhtuanle4991
    @anhtuanle4991 2 года назад

    cám ơn anh, rất dễ hiểu

  • @nguyentienvnnll6920
    @nguyentienvnnll6920 4 года назад

    *Mùa dịch ở nhà xem video của a là hết ý*

    • @EasyFrontend
      @EasyFrontend  4 года назад

      haha cảm ơn em nhiều nha Tiến. Video này em code theo có gặp khó khắn gì hk Tiến? 🙂

  • @quanhng9856
    @quanhng9856 4 года назад

    Video rất hay. Mong anh sớm ra thêm video ạ 😍😍😍

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hihi cảm ơn em nhiều nhé! 😍 Hẹn em sáng mai lại tiếp tục thực hành useState() nữa nha 😉

    • @quanhng9856
      @quanhng9856 4 года назад

      @@EasyFrontend tks anh ạ. E nhảy sang luôn học react native.em đang đọc docs và làm theo ví dụ nên thấy kiến thức về react hook của anh bổ trợ cbo em rất nhiều ạ

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Quanh Ng Yeahhhh rất vui vì kiến thức của mình hỗ trợ được cho bạn nè, nếu có gì cần trao đổi thêm, cứ thoải mái ping mình nhé 🙂

  • @LamNguyen-rc2ic
    @LamNguyen-rc2ic 3 года назад

    Video sịn lắm luôn á a 😍😍

  • @thaingo9763
    @thaingo9763 4 года назад

    Cảm ơn anh ạ. Xem anh dễ hiểu quá!.😍😍

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hehee cảm ơn em nhiều nhé Thái ơiiii 😍

  • @xuyenhoangvan3454
    @xuyenhoangvan3454 4 года назад

    Hay quá mong muốn anh ra nhiều clip hay. Ntn

  • @congloibui3363
    @congloibui3363 4 года назад

    cảm ơn thầy, video rất dễ hiểu.

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Yeahhh cảm ơn e nhé Lợi hehe 😉

    • @congloibui3363
      @congloibui3363 4 года назад

      @@EasyFrontend em hi vọng thầy sẽ làm nhiều video như này để giúp những bạn developer có thể dễ dàng tiếp thu kiến thức mới

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      @@congloibui3363 Yayyy a vẫn đang tiếp tục làm videos cho mn tham khảo nhé Lợi hehe, chúc em thật nhiều sức khoẻ nhen 😍

  • @quachsirel4843
    @quachsirel4843 3 года назад

    quá hay anh ơi !

  • @aoatom8244
    @aoatom8244 4 года назад +1

    thanks annh nhiều nha

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hâhha cảm ơn em nhiều nha Tôm ơiiiii 😍

    • @aoatom8244
      @aoatom8244 4 года назад

      @@EasyFrontend a ơi a làm 1 video để trả lời cho câu hỏi " how react update DOM" được không ? E học Nodejs API giờ tính mò sang React để tập tành call APIs nên hơi gà mờ. Bữa giờ e cứ nghĩ hàm render() là hàm xong cuối cùng và nó cho ra UI Update lên DOM luôn nhưng sau khi nghe xong về lifecycle của a thì hình như không phải thế. Saurender thì còn có những hàm khác nữa. Em có tím hiểu để trả lời cho câu hỏi "HOW REACT UPDATE DOM",thì được biết còn có virtua DOM gì gì đó nữa...Luồng chạy các Component khi update ntn nữa ...huhu.. CẢM ƠN ANH NHIỀU

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      @@aoatom8244 hi Tôm, anh có một video về react life cycle component, em vào kênh của anh, xem series của reactjs rồi xem thử nhen hihi 😉

  • @canlongnguyen6378
    @canlongnguyen6378 4 года назад

    Anh chỉnh âm lượng lớn thêm một xíu là Ok. Còn bài giảng thì rất hay ạ :3

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Càn Long Nguyễn Yesss, cảm ơn Long. Xin lỗi em, video này hơi bị failed phần âm thanh hihi, a có chỉnh lại ở mấy video sau òi hihi 🙂

  • @tuanluongviet8030
    @tuanluongviet8030 4 года назад

    rất hay, rất rõ ràng

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Tuấn Lường Viết hihi cảm ơn bạn nhiều nhé ❤️

  • @thienophuoc4577
    @thienophuoc4577 4 года назад

    Rất cám ơn anh về playlist React này ❤️

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Thiện Đỗ Phước ❤️ Cảm ơn e nhiều nhé Thiện! Hi vọng series này có thể giúp ích được cho bạn 🙂

  • @dangchangchannel212
    @dangchangchannel212 4 года назад

    Cảm ơn a! Video hay quá ạ..

  • @nguyenvanhuy2987
    @nguyenvanhuy2987 4 года назад

    Hay quá a . Trong video này e học được chia cho dễ nhìn css hehe . Bộ lần để dính chung ko có cách line hehe

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hehe cool e Huy, e có hiểu được tư duy code, logic trước, UI sau không Huy? 🙂

    • @nguyenvanhuy2987
      @nguyenvanhuy2987 4 года назад

      Được a ạ

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Nguyễn Văn Huy yeahhhh e thử áp dụng, sau một thời gian cho a xin KQ của phương pháp này nhen, code có tốt hơn hk? hiệu quả hơn hk? 🙂

  • @moon22nov
    @moon22nov 4 года назад

    hay qua anh oi

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hehe cảm ơn em nhiều nhé Moon ơi 😍

  • @juhandvan
    @juhandvan 4 года назад

    Anh day hay lắm, mà e khoái nhất mấy cái dzụ phím tắt với auto import trong vs code , bữa giờ xài lâu lâu rồi mà không biết

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      khà khà ngon lành Van ơi!!! 😍 Code theo anh cái series này là em thấy được những phím tắt mà anh hay dùng luôn òi á hehee

  • @confessionspp3725
    @confessionspp3725 3 года назад

    Phần React Hooks anh giảng ở trên ytb chi tiết hơn cả trên Udemy nữa, em học trên udemy xong ra ngoài này xem nữa ^^ Giờ mới biết anh lưu vào local storage, xem ở udemy thấy anh reload vẫn giữ lại giá trị mà anh không nói lưu ở đâu

    • @EasyFrontend
      @EasyFrontend  3 года назад

      hahaa cảm ơn em, đúng òi phần hooks trên Udemy a nhớ là có recommend mn qua RUclips coi cho đầy đủ hen hehe, tại copy qua Udemy hơi kì hihi

  • @dungduong7585
    @dungduong7585 4 года назад

    hay quá anh ơi

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn em, e đã code thử được chưa? Có bugs gì không Dũng? 🙂

    • @dungduong7585
      @dungduong7585 4 года назад

      @@EasyFrontend dạ ngon lành cành đào anh ạ :v cảm ơn anh nhiều

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Dung Duong hehe quá đẹp nè, nếu có gì chưa rõ thì thoải mái trao đổi vs a nha 👍

  • @trongnguyenduy3936
    @trongnguyenduy3936 3 года назад

    cảm ơn a

  • @devil2k1
    @devil2k1 4 года назад

    Hay quá hehe

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn Hiệp nhé. Bạn có code theo được hk Hiệp? 🙂

    • @devil2k1
      @devil2k1 4 года назад

      @@EasyFrontend video của anh rất hữu ích ạ, em cx chỉ mới bắt đầu học reactjs, anh nói rất dễ hiểu keke

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Hiệp Nguyễn Văn hehee cảm ơn e nha Hiệp hehee, có gì hk rõ thì cứ trao đổi thêm vs a nha hehee

    • @devil2k1
      @devil2k1 4 года назад

      @@EasyFrontend Dạ vâng anh ơi hehe

  • @15.nguyenduyhieu91
    @15.nguyenduyhieu91 4 года назад

    Xem video của a có ngày lên master

    • @EasyFrontend
      @EasyFrontend  4 года назад

      haha lên được thì lên luôn Hiếu ơi 😍

  • @chontamthanhtinh
    @chontamthanhtinh 4 года назад

    đã click vào quảng cáo. Cảm ơn a nha

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Yeahhhh cảm ơn em nhé Sang ơi 😍

  • @ninjacode5305
    @ninjacode5305 4 года назад

    thanks a rat nhieu

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Yeahhh cảm ơn em nhiều nhé Ninja hehe 😍

  • @nambui526
    @nambui526 4 года назад

    cảm ơn a ạ

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hihi cảm ơn em nhé Nam. E có code theo video được hk Nam?

    • @nambui526
      @nambui526 4 года назад

      @@EasyFrontend dạ e có ạ

  • @thanhdungnguyen6953
    @thanhdungnguyen6953 4 года назад

    hay qua a oi

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hehe cảm ơn em nhé Dũng 🥰

  • @trannhatsangfplhcm7018
    @trannhatsangfplhcm7018 2 года назад +1

    Hi a Hậu cho em hỏi LocalStorage hiện tại 2022 trong react có hỗ trợ nữa không ạ. Em làm như video nhưng LocalStorage trong VScode lại báo error: 'LocalStorage' is not defined.eslintno-undef

    • @EasyFrontend
      @EasyFrontend  2 года назад +1

      hi Sang, em để ý là localStorage nhen, viết đúng hoa thường nha Sang

    • @trannhatsangfplhcm7018
      @trannhatsangfplhcm7018 2 года назад

      @@EasyFrontend aw cám ơn a, em mới vừa để ý.

  • @laule3386
    @laule3386 4 года назад

    Hi bạn, video rất hữu ích cho mình, thank bạn nhiều ! Cũng cho mình hỏi là nên sử dụng kiểu file style external là .sass hay là .scss tối ưu hơn ? Thanks

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hi Lau ơi, mình thì chỉ toàn dùng SCSS nè, còn SASS thì mình chưa thấy sử dụng trong dự án hihi, đơn giản vì viết đc như CSS, copy qua lại cũng dễ, còn compile thì sass hay scss gì cũng compile đc nên hk sao nhé Lau 😉

    • @laule3386
      @laule3386 4 года назад

      @@EasyFrontend ok bạn, mình đã hiểu, thanks bạn nha

  • @oquang2955
    @oquang2955 4 года назад

    tks anh nhé

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hihi cảm ơn em nhiều nhé Quang ❤️

  • @SangNguyen-gq7wq
    @SangNguyen-gq7wq 4 года назад

    Chào a! Thanks a ạ! A chia sẻ rất hay. A cho e hỏi là sao a dùng const cho tất cả các biến vậy a. Theo e được biết thì const dùng cho hằng số và mình k update dc giá trị mà a! Thanks á

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Sang Nguyễn hi Sang, cảm ơn em nhiều nhé. 😍
      Mình dùng const khi nó là:
      - Hằng số
      - Hoặc em ko muốn thay đổi nó.
      Điều này nó giúp em đảm bảo được giá trị em tạo ra ko bị mutate lung tung nè.
      Còn let em dùng khi nào có nhu cầu thay đổi giá trị thôi nhé 😉 Khi em dùng let mà ko có thay đổi giá trị thì sẽ thấy warning là nên chuyển sang cónt hehe

    • @SangNguyen-gq7wq
      @SangNguyen-gq7wq 4 года назад

      Easy Frontend sao e vẫn thấy a set lại giá trị của nó khi dùng const mà a. E vẫn chưa hiểu lắm a à

    • @EasyFrontend
      @EasyFrontend  4 года назад

      @@SangNguyen-gq7wq hmm cụ thể là code chỗ nào, em ghi ra luôn giúp anh được ko? 🙂

  • @l2code164
    @l2code164 4 года назад

    Awesome video !!!!!

  • @anhtuanle4991
    @anhtuanle4991 2 года назад

    Anh cho em hỏi ngoài lề tí. Em muốn mỗi lần mình click thì sẽ cho thg random đó vào cái Set() để khi click thì nó sẽ không lặp lại màu á anh. Nhưng mà em add thì nó chỉ thêm được 1 giá trị. Là do useState nó render mỗi lần mình click đúng không a

    • @EasyFrontend
      @EasyFrontend  2 года назад

      hi Tuấn, cái này lâu quá anh hk nhớ rõ nữa
      có gì em share codesandbox qua messenger a xem thử sau hen

  • @ngocthotran6378
    @ngocthotran6378 Год назад

    Em đã coi phần useEffect của thấy, nhưng không biết là làm thế nào sử dụng useEffect để lưu lại màu khi reload lại trinh duyệt? Thầy có thể gợi ý cho em tí không ạ

    • @EasyFrontend
      @EasyFrontend  Год назад

      hi Thọ, em có thể lưu xuống local storage nha, rồi khi reload, lúc khởi tạo em lấy value từ local storage lên nha

  • @khailam7681
    @khailam7681 4 года назад

    Nay tiếng hơi nhỏ thì phải :D vẫn hay

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Khải Lâm Yeah đúng òi á Lâm, hình như đợt này cái mic nó hơi nhỏ, a sẽ chú ý ở video sau hihi Em code theo được chưa Lâm? Có dễ theo dõi hk? 🙂

    • @khailam7681
      @khailam7681 4 года назад

      @@EasyFrontend dễ hiểu mà anh, đúng phần em đang cần học, mong video ra nhiều để em đỡ khổ hehe

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Khải Lâm hehe cảm ơn e Lâm, a vẫn đang làm tiếp nè hehee

  • @toanphuong1808
    @toanphuong1808 4 года назад +1

    A ơi cho em hỏi. Khi nào dùng .JS và khi nào dùng .JSX vậy ạ

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi em, với code trong reactjs thì em dùng .js hay .jsx đều được nhé
      js: ý nghĩa là file javascript
      jsx: ý nghĩa là jsx
      Mà trong react của mình, một component nó return về jsx, nên jsx dùng nó sẽ chính xác và hợp lý hơn là js.
      Nên anh khuyến khích dùng jsx nhé! 🙂
      Nhưng nếu em vẫn xài js thì nó vẫn okie hen.

  • @zennamfan2663
    @zennamfan2663 Год назад

    ban lam video react query di ban

    • @EasyFrontend
      @EasyFrontend  Год назад

      yeah mình có dự định làm react-query, cơ mà bận quá mình chưa làm đc á hihi

  • @kientrung5066
    @kientrung5066 3 года назад

    Anh ơi em có cài cái extension Reacjs code snippets rồi nhưg khi ấn rsfp rồi tab nó ko ra sẵn components được anh ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à cái này anh hk rõ òi, chắc em thử restart vscode xem sao em nhen

  • @nguyenquangtuyen3389
    @nguyenquangtuyen3389 4 года назад +1

    Hi anh! em có một project tạo cách đây gần 2 tháng check file src/index không có React.StrictMode mà sao khi click button add to cart vẫn add 2 lần anh nhỉ?

    • @nguyenquangtuyen3389
      @nguyenquangtuyen3389 4 года назад +1

      Rất mong nhận được reply của anh. Logic code khi add thì chắc chắn không sai ạ

    • @nguyenquangtuyen3389
      @nguyenquangtuyen3389 4 года назад +1

      Thi thoảng mới có bug này chứ không phải lần click nào cũng add 2 lần ạ

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hi Tuyền, trong trường hợp này thì chỉ có một cách duy nhất anh phải kiếm tra logic của em thôi à.
      Nếu được, em ping anh bên Facebook, rồi share cho anh cách em xử lý nút add nha.
      Để xem a có thấy được gì lạ không nha Tuyền? 🙂

    • @nguyenquangtuyen3389
      @nguyenquangtuyen3389 4 года назад

      @@EasyFrontend Dạ tốt quá anh ạ. Anh check inbox fb nha anh

  • @ongTrinh-mi6js
    @ongTrinh-mi6js 4 года назад

    yêu màu hồng à anh giai ơi.

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hahaaa à màu này là màu huyền thoại trong khoá học FE của mình, vì cái design là toàn màu này, nên xài riết quen tay ko để ý đó Dũng =))) Bạn có ghét màu hồng hk Dũng? 🙂

    • @ongTrinh-mi6js
      @ongTrinh-mi6js 4 года назад

      @@EasyFrontend cứ anh thích là em theo anh luôn à.😁😁😁.serie này bao nhiêu bài ạ anh.

  • @juki9x
    @juki9x 4 года назад

    Anh cho em hỏi giá trị trong biến const không thể thay đổi, tại sao color vẫn có thể thay đổi nhỉ, em chưa hiểu rõ chỗ này.

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hehe câu hỏi hay nè, mà An ơi, em để ý là mình ko thể thay đổi color trực tiếp được (tại const mà), nhưng em có thể thay đổi bằng cách gọi ông thần setColor(), rồi khi gọi ổng sẽ tự update bên dưới và trả về một cái color mới cho em hen 😉
      Tức là ở component, color là const, nên ko thay đổi được.
      Nhưng bên trong hook useState() nó là cái có thể thay đổi được, và khi cần nó sẽ thay đổi hen 😉

  • @ChiNguyen-ft4yq
    @ChiNguyen-ft4yq 4 года назад

    Thanks a

  • @hiiamtrong
    @hiiamtrong 4 года назад

    Tks a

  • @trantuyen9549
    @trantuyen9549 4 года назад

    Cho hỏi có cần khai báo propTypes không vậy bác ơi ? Mình thấy code có propTypes vẫn chạy và ko có vẫn chạy, không biết mục đích khai báo là làm gì nhỉ ?

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Yeah một câu hỏi hay nè bạn Tuyền.
      1. Bạn nên dùng PropTypes nhé.
      2. Nó giúp mình kiểm tra loại dữ liệu truyền vào của props có đúng như mình khai báo hay ko? Từ đó phát hiện bugs sớm mà fix dưới local.
      3. Ko có PropTypes code vẫn chạy bình thường nhưng tìm ẩn bugs có thể xảy ra, dĩ nhiên PropTypes ko giúp được hoàn toàn ko có bugs, nhưng ít nhất những trường hợp truyền nhầm loại dữ liệu thì cũng đỡ được phần nào hehe.
      4. Nó giúp mình biết component có những props gì. Tưởng tượng bạn mới vào một team, đọc code một component, làm sao bạn biết component đó có những props gì? Đọc hết code của component đó chăng? Yess, phải vậy đó, nên sẽ mất thời gian, nên nếu có khai báo thì chỉ cần nhìn vào là biết ngay. Quá khoẻ đúng ko nào? 🙂
      Giờ thì bạn thấy nên dùng PropTypes chưa? 😉

  • @igdev6095
    @igdev6095 3 года назад

    4:05 sao a ko viết hoa chữ "I" đầu thành "Index.jsx" mà là "index.jsx" zậy a, e chỉ thấy a viết ColorBox.scss thui á, ko biết nó có chuẩn đặt tên file nào ko :v

    • @EasyFrontend
      @EasyFrontend  3 года назад

      hi em, index.* là một loại default entry nè.
      index.html -> default file của trình duyệt, khi vào một cái đường dẫn, nó sẽ auto đi tìm file index.html để hiển thị lên.
      index.js, index.ts, index.tsx --> file mặc định của folder hiện tại
      chứ mình ko có dùng Index (viết hoa chữ cái I nha)

  • @linleqtgh
    @linleqtgh 4 года назад

    anh có biết sr hướng dẫn học react nào giống như 100 ngày code angular của anh Tiêp trân không ạ. chỉ em với.

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi em, hiện thì anh hk có biết nè e ơi 🙂

  • @quangtrungngo8378
    @quangtrungngo8378 4 года назад +1

    em không dùng được scss. bị lỗi này( Error: Node Sass version 5.0.0 is incompatible with ^4.0.0. ). ai giúp em với ạ. đọc trên stackoverflow nhưng làm theo không dc

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi Trung ơi, do CRA chỉ tương thích với node-sass v4 nè hehe, em chạy lệnh này giúp anh nha: npm install node-sass@^4

  • @huybn1988
    @huybn1988 3 года назад

    a ơi , cho e hỏi cái extension nào hỗ trợ autop import vậy ạ?
    Mong a trả lời ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      hi Huy, cái auto import thì vscode bản thân nó có rồi nè.
      Nhưng nếu nó ko works, em thử cái ext này xem marketplace.visualstudio.com/items?itemName=NuclleaR.vscode-extension-auto-import
      Hoặc em thử thế này.
      Nếu muôn import B vào A.
      Thì hãy mở file B lên khoảng 3s.
      Sau đó quay lại A, gõ thử xem nó có suggestion auto import ko nhen hehe

    • @huybn1988
      @huybn1988 3 года назад

      @@EasyFrontend tks a ạ

  • @ngkuka
    @ngkuka 4 года назад

    ❤️

    • @EasyFrontend
      @EasyFrontend  4 года назад

      ❤️ cảm ơn bạn nhiều nhé!
      Cho mình xin hỏi, bạn có học được gì mới từ video hk nhỉ? 🙂

    • @ngkuka
      @ngkuka 4 года назад

      @@EasyFrontend hì..dạ e làm React lâu rồi ạ..nhưng vẫn thích xem video ủng hộ a.
      Nhiệt tình và khá chất lượng ạ !!! ❤️

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Văn Nguyễn Trời!!! Mình quá may mắn. Cảm ơn bạn đã ủng hộ mình nhiệt tình nhen, hi vọng các videos của mình hữu ích để bù đắp lại sự ủng hộ của mn nè hihi ❤️

  • @ucthangle6195
    @ucthangle6195 3 года назад

    Hi anh! Vì sao initialColor luôn thay đổi mà để vào callback function thì nó chỉ console ra 1 lần thôi vậy anh?

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à vì callback fn trong useState chỉ chạy 1 lần đầu em nha

    • @ucthangle6195
      @ucthangle6195 3 года назад

      @@EasyFrontend Em cảm ơn nhé

  • @kurenaiwataru8104
    @kurenaiwataru8104 2 года назад

    Anh ơi cho em hỏi . sao em đổi đuôi file App , colorBox sang js mà nó vẫn chạy bình thường thế

    • @EasyFrontend
      @EasyFrontend  2 года назад

      à đuôi file nào nó cũng chạy đc em nhen, js hay jsx đều okie em nha

    • @kurenaiwataru8104
      @kurenaiwataru8104 2 года назад

      2 cái đuôi file này có khác nhau điểm nào ko anh . trước giờ em toàn để đuôi js nhưng chỗ e chuẩn bị thực tập dùng jsx .

    • @kurenaiwataru8104
      @kurenaiwataru8104 2 года назад

      @@EasyFrontend vs cả cái vscode của em ko tự động fortmat code trong đuôi file . jsx

  • @mabuuu2
    @mabuuu2 3 года назад

    âm thanh của video này hơi nhỏ so với những video trước a ơi

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à okie em nhen, sr em, hùi đó làm videos chưa có kinh nghiệm nên hơi failed tí hihi

  • @ucduong2288
    @ucduong2288 4 года назад

    anh có thể cho em hỏi cách nào mình lấy đc tên màu và in ra giữa cái box màu tương ứng k ạ ?

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi Đức, em để ý là mình có một cái state color, em có thể dùng cái state để hiển thị lên nhen.
      Ví dụ: Em thêm một thẻ p bên trong thẻ div.color-box, với nội dung là cái text color hen.
      {color}
      Dạng thế này nha Đức 😉

    • @ucduong2288
      @ucduong2288 4 года назад

      @@EasyFrontend ồ e thanks 😂

  • @leecode107
    @leecode107 4 года назад

    anh ơi - làm về Optimizing Performance ReactJS đi anh..

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hehe cái này thì chỉ có một số case đb, render hơi nặng mới cần optimize thôi nè, hmm hơi advanced tí, em có đang gặp case nào bị hk em hen?

  • @huubinhnguyen6240
    @huubinhnguyen6240 4 года назад

    Nếu mỗi component mình đều code file css rồi import thì nó có ảnh hưởng đến tốc độ load trang không ạ ?

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi Bình, theo mình thì nó ko ảnh hưởng nhé, thẩm chí nó còn nhanh hơn là gộp.
      Ví dụ bạn viết styles vào hết 1 file, như vậy khi load trang bạn phải load nguyên cái file css bự đó, mà thực sự bạn chỉ cần 1/10 cái file đó là đủ.
      Còn trường hợp bạn chia theo component, thì rõ ràng cái component xài thì nó mới load cái css tương ứng lên. Nên ban đầu nó ko cần load hết một nùi css, mà chỉ load những cái cần xài. Như vậy sẽ tốt hơn nè 🙂

    • @huubinhnguyen6240
      @huubinhnguyen6240 4 года назад

      @@EasyFrontend ôi anh cảm ơn anh nhiều ạ. Em thích cách dạy của anh tỉ mỉ ở chi tiết nhỏ giúp newbie như em có đc tips hay.

  •  4 года назад

    Ở chỗ *Math.trunc()* thì em sử dụng *Math.floor()* có được không ạ?

    • @EasyFrontend
      @EasyFrontend  4 года назад

      à được nhé Trì ơi, nhưng em nhớ phân biệt rõ giúp anh là 2 hàm này có chức năng khác nhau nhen 😉

  • @HieuTrungTran2205
    @HieuTrungTran2205 3 года назад

    em có sử dụng 2 useState() cho 2 component khác nhau, nhưng khi chạy lại có lỗi 'props is not iterable'. A có thể giải thích cho e về lỗi này đc ko ạ? e cảm ơn

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à nó báo lỗi vậy tức em dùng hàm của array trong khi props đó ko phải kiểu dữ liệu array em nha 😉

    • @HieuTrungTran2205
      @HieuTrungTran2205 3 года назад

      @@EasyFrontend em cảm ơn a em fix đc r ạ

  • @chauminh1313
    @chauminh1313 4 года назад

    e mới từ class qua, cho e hỏi là index.jsx khác gì tạo index.js v anh ?

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      hi em, à cơ bản nó chỉ khác cái extension thôi nè 😉
      Tại component nó là jsx nên mình dùng .jsx cho nó chính xác, còn js thì nó vẫn chạy được nha 🙂

    • @chauminh1313
      @chauminh1313 4 года назад

      à ra thế, coi video của a hiễu dc 1 đống thứ về react mà trc giờ chưa biết kakaka, tks a nhiều

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Chau Minh hahaa ngon lành, a rất vui vì điều đó, học tốt nha em! 🙂

  • @HoangPham-xt3fj
    @HoangPham-xt3fj 4 года назад

    anh ơi cho em hỏi tại sao các file components anh lại để đuổi jsx ạ ?

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Hi Hoàng, cơ bản thì js hay jsx gì nó cũng chạy.
      Mà anh thì prefer xài jsx, vì cơ bản component nó sử dụng syntax của jsx nè. 🙂

    • @HoangPham-xt3fj
      @HoangPham-xt3fj 4 года назад

      @@EasyFrontend em cảm ơn ạ

  • @longduongvan9461
    @longduongvan9461 3 года назад

    cái auto import của e nó ko hiện thì phải làm sao vậy a???

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à thỉnh thoảng a cũng bị hehe, một là import tay, hai là em restart vscode xem đc ko nhé 😉

  • @manhcuong1788
    @manhcuong1788 4 года назад

    Anh ơi em hơi thắc mắc rằng vì sao anh sử dụng Math.trunc thay vì dùng Math.floor hoặc parseInt vậy anh. Em vẫn chưa hiểu rõ lắm sự khác biệt giữa những hàm này

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Mạnh Cường hi Cường, vậy đầu tiên em search google giúp anh để biết mỗi hàm nó làm gì trước nha, sau đó e sẽ tự so sánh được nè 😉

    • @manhcuong1788
      @manhcuong1788 4 года назад

      @@EasyFrontend dạ vâng anh

  • @duonginhxuan668
    @duonginhxuan668 4 года назад

    kiếm cái tai nghe xịn xò thu âm cho rõ a ạ . em thấy hơi bé

    • @EasyFrontend
      @EasyFrontend  4 года назад +1

      Yeah cảm ơn em nhé Xuân, anh có bị một vài video âm thanh ko tốt 🙂 Anh có cố gắng khắc phục ở mấy videos sau, với anh cũng order cái micro cài áo luôn òi, hi vọng các videos sau này sẽ tốt hơn. Cảm ơn em đã cho anh biết nhé Xuân 😍

    • @duonginhxuan668
      @duonginhxuan668 4 года назад

      @@EasyFrontend tuyệt vời a ơi :)

  • @mersy4405
    @mersy4405 3 года назад

    lamf sao hiện đc các option terminal v a?

    • @EasyFrontend
      @EasyFrontend  3 года назад

      à cái anh đang dùng là zsh, cài thêm zsh theme là sẽ có em nha.
      theme anh đang dùng là powerline10k 🙂
      github.com/romkatv/powerlevel10k

    • @mersy4405
      @mersy4405 3 года назад

      @@EasyFrontend e có cài theo video của a nhưng chỉ đc trong terminal của ubuntu à, còn của vscode thì mình lm sao a

    • @EasyFrontend
      @EasyFrontend  3 года назад

      @@mersy4405 à vậy em tìm cách set font family cho terminal của vscode nữa em nha, a quên mất cái link òi hehe

  • @leduc8673
    @leduc8673 2 года назад

    sao tool của em không có gợi ý import vậy anh

    • @EasyFrontend
      @EasyFrontend  2 года назад

      à vscode thỉnh thoảng nó hơi lag lag á em, hông chịu gợi ý hihi

  • @huy19437
    @huy19437 3 года назад

    đuôi file .js khác gì với .jsx ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      à nó chỉ là loại file thôi em nha. Em dùng cái nào cũng được, nhưng khuyến khích dùng jsx cho component và js cho non-component nha Huy

    • @huy19437
      @huy19437 3 года назад

      @@EasyFrontend dạ cảm ơn anh nhiều ^^

  • @ngxn7881
    @ngxn7881 3 года назад

    em ko dùng đc setitem với getitem anh ơi , ko hiểu bị sao nua

    • @EasyFrontend
      @EasyFrontend  3 года назад

      Nó có báo lỗi gì ko e hen?

    • @ngxn7881
      @ngxn7881 3 года назад

      ​@@EasyFrontend ko lỗi gì cả anh , anh có bao giờ gặp trường hợp ko dùng đc các lệnh react , js do máy tính của mình chưa .
      bạn em nó cũng đi làm rồi nó bảo do máy em nó bị làm sao chứ máy nó vẫn dùng đc đoạn code đấy bt
      mặc dù em đã cài lại win , cài lại VS CODE , extendsion node js

  • @thelegend2932
    @thelegend2932 4 года назад

    cho em hỏi sao cái useState nó không tự import được như anh nhỉ?

    • @EasyFrontend
      @EasyFrontend  4 года назад

      Chào bạn, bạn gõ chậm chậm thử nhen, vì có thể máy nó load chậm nên chưa hiển thị kịp nè. Hoặc sau khi gõ xong, dùng Ctrl + Space để nó gợi ý import nhen 🙂

  • @huy19437
    @huy19437 3 года назад

    Vì sao sử dụng strict mode nó lại render UI ra 2 lần vậy ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      à dem đọc cái comment này nhé :)
      github.com/facebook/react/issues/15074#issuecomment-471197572

  • @hieuo2664
    @hieuo2664 4 года назад

    Anh có nhận đệ tử không anh ơi ^^

  • @vudinhcong
    @vudinhcong 4 года назад

    Em thấy anh copy đc cả cái icon vào html, a làm cách nào vậy ạ?

    • @EasyFrontend
      @EasyFrontend  4 года назад

      hi Công, em chỉ cần copy emoji rồi paste zô thôi nhen, còn trên MacOS nó có thể mở emoji lên và chèn trực tiếp vào được nè 😉

    • @vudinhcong
      @vudinhcong 4 года назад

      @@EasyFrontend em cảm ơn ạ

  • @myanh2299
    @myanh2299 3 года назад

    video này âm lượng hơi nhỏ ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад

      hihi cảm ơn em nha, sr em, hùi trước làm thiếu kinh nghiệm trong mảng âm thanh ánh sáng, giờ đỡ rồi nè hihi

  • @MinhLe-tw7tv
    @MinhLe-tw7tv 4 года назад

    xem bài 7 rồi mà chưa cmt bài 3 :D

    • @EasyFrontend
      @EasyFrontend  4 года назад

      lol fan cứng, điểm danh từng bài luôn hở Hồ ? =)))

  • @lou_hoang4719
    @lou_hoang4719 3 года назад

    sao file lại là jsx ko phải js vậy ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      hi Hoàng, cơ bản thì cái nào cũng đc em nhen. Nhưng anh prefer jsx em nhé, vì reactjs sử dụng jsx syntax em nhen 😉 còn file logic thì dùng js hehe

    • @lou_hoang4719
      @lou_hoang4719 3 года назад

      @@EasyFrontend dạ em đang cày mấy cái video của anh xong hooks rồi em qua redux ạ

    • @EasyFrontend
      @EasyFrontend  3 года назад +1

      @@lou_hoang4719 okie em nhen hihi 😉

  • @angbui2937
    @angbui2937 2 года назад

    Uncaught TypeError: Failed to execute 'getItem' on 'Storage': 1 argument required, but only 0 present .Em bị lỗi này khi làm theo video của a ở chỗ localstorage.getItem . Console vẫn ra kết quả như của a ạ . E có tìm trên stackoverflows nhưng k hiểu ạ

    • @EasyFrontend
      @EasyFrontend  2 года назад

      hi em, cái này có vẻ em quên truyền tham số cho hàm, em kiểm tra lại code giúp anh nha