React hooks: 02 - useState() và điều cần lưu ý 😊 (2020)

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ต.ค. 2024

ความคิดเห็น • 162

  • @EasyFrontend
    @EasyFrontend  4 ปีที่แล้ว +9

    Cảm ơn tất cả các bạn đã xem video của mình! ❤️
    Có điều gì bạn mới biết về useState() khi xem video này không?
    Hãy bình luận bên dưới cho mình biết với nhé 😉

    • @letuanthanh4686
      @letuanthanh4686 4 ปีที่แล้ว

      Easy Frontend Em có 1 chỗ chưa hiểu kĩ lắm ở cái đoạn set backgroundColor . có phải style trong React thì viết khác css là background-color hay k anh

    • @letuanthanh4686
      @letuanthanh4686 4 ปีที่แล้ว

      Easy Frontend và cái chỗ return ra thẻ li mình phải là key={index} đúng k anh.vì todo k có id mà anh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      yeah đúng rồi nha Thanh, style trong reactjs mình viết theo js nhen.
      Các thuộc tính css sẽ được viết lại thành dạng camelCase
      Vd:
      background-color --> backgroundColor
      font-size --> fontSize
      ...
      Em lưu ý cái này Thanh nha 🙂

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      lol cảm ơn em đã phát hiện lỗi này, do anh code chay nên hk để ý, nó phải là key={todo} luôn á Thanh.
      Khi render cái list trong react, em ko nên dùng cái index làm key nha.
      Vì index nó sẽ bị thay đổi, ví dụ nếu em remove một item ở giữa mảng, thì rõ ràng index của các item phía sau sẽ bị thay đổi, nên react sẽ detect bị sai nhen 🙂

    • @letuanthanh4686
      @letuanthanh4686 4 ปีที่แล้ว

      @@EasyFrontend Dạ vâng anh. Cảm ơn Anh . Mong các video sắp tới về React Hook và sâu hơn về React Redux của anh :)

  • @baole2691
    @baole2691 4 ปีที่แล้ว

    cách giảng này vô cùng dễ hiểu với ae newbie ..vote

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Yayyyy cảm ơn em nhiều nhé Bảo ơi 😍

  • @bachnguyen4739
    @bachnguyen4739 4 ปีที่แล้ว

    Anh giảng rất hay và dễ hiểu ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Yeahhhh cảm ơn em nhiều nhé Bach ơi 🤩

  • @vutranleanh9183
    @vutranleanh9183 4 ปีที่แล้ว +2

    Anh đã "bị" em theo dõi trên Facebook ^^. Em cực kỳ thích cách hướng dẫn của anh, vừa có hình => tăng tính tương tác, vừa có nội dung lý thuyết bài bản. Tuyệt vời hơn là không có những từ ngữ thừa làm cho bài học bị rối cũng như dễ gây mất tập trung. Thật sự xem video của anh rất hiệu quả. ^^ Mong chờ những series khác nữa từ anh. :) Cám ơn anh rất nhiều!

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      trời ơi, phản hồi rất có tâm luôn, cảm ơn em rất nhiều nha Vũ ơi hehee, a vẫn đang làm thêm videos, hi vọng là nó cũng hữu ích cho mn 😍

  • @Comment112358
    @Comment112358 4 ปีที่แล้ว

    mình không có ý kiến gì về useState(), nhưng cảm ơn bạn vì chia sẽ có tâm. Thế giới cần những người như bạn :D

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn bạn TH nhiều nhiều nhé 😊

  • @phamhieu9539
    @phamhieu9539 3 ปีที่แล้ว

    Bài học quá hay và thú vị . Hi vọng bạn cho thật nhiều bài giảng về react nữa nhé , thanksss @!!!!

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      hehe cảm ơn bạn Hiếu nhiều nhé 😉 nếu bạn quan tâm tới full khoá reactjs thì có thể tham khảo khoá của mình trên udemy nhen 🙂

  • @juhandvan
    @juhandvan 4 ปีที่แล้ว

    Cách giảng và các ví dụ anh đưa ra rất dễ hiểu ạ. Thank a nhiều ạ :))

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn em đã phản hồi lại cho anh nhé Van 😉

  • @nguyentin1119
    @nguyentin1119 4 ปีที่แล้ว

    Videos vô cùng bổ ích. Cảm ơn anh ạ.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn em nhiều nhé Tin ơi 🥳

  • @tnanhpt
    @tnanhpt 4 ปีที่แล้ว

    Cảm ơn bác nhiều nhé, chúc bác sức khỏe và mong bác ra nhiều video về những lưu ý như này.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      chào Anh, cảm ơn bạn nhiều nhé. ❤️
      Bạn cũng giữ sức khoẻ, đặc biệt là trong mùa dịch này nha.
      À với bạn có thể chia sẻ với mình là có điều gì trước đây bạn chưa biết về useState() khi xem video này hk Anh?

  • @minhthanh8392
    @minhthanh8392 4 ปีที่แล้ว

    Hay quá anh ơi, luôn liên kết với những kiến thức liên quan :x quá tuyệt anh ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn em nhiều Thành ơi, rất vui vì em thích những kiến thức a gom góp vào video nè 🥰

  • @traitimcongly1236
    @traitimcongly1236 2 ปีที่แล้ว

    Quá hay, cảm ơn bạn❤

  • @trungnguyenthanh1943
    @trungnguyenthanh1943 4 ปีที่แล้ว

    anh giảng dễ hiểu quá anh ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Trung Nguyễn hihi cảm ơn e nhiều Trung ơiiii 🥰 rất vui vì em có thể hiểu đc thông qua video nè hehee

  • @viewview6737
    @viewview6737 2 ปีที่แล้ว

    anh giảng hay quá, e sub luôn r :D

    • @EasyFrontend
      @EasyFrontend  2 ปีที่แล้ว +1

      yeahhh cảm ơn em nhiều nhé hihi

  • @letuanthanh4686
    @letuanthanh4686 4 ปีที่แล้ว

    hay quá anh ơi, đúng đoạn hqa đang tắc ở function Com useState ạ. Thank anh nhiều :D

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      yeah quá đúng thời điểm luôn Thanh ơi, cảm ơn em đã xem video của anh nha.
      Ngoài ra còn vấn đề gì chưa rõ hk Thanh?

  • @thanhtongle7646
    @thanhtongle7646 3 ปีที่แล้ว

    Video siêu hay luôn a ơi :D Chúc kênh phát triển thêm ạ.

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      Yeahhh cảm ơn em nhiều nhiều nha Tông ơiii 😍

  • @thanhphongnguyen7808
    @thanhphongnguyen7808 3 ปีที่แล้ว

    Video hay, dễ hiểu. Thanks a nhé!

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      hihi cảm ơn em nhiều nhé Phong 😍

  • @hoangcongson4146
    @hoangcongson4146 3 ปีที่แล้ว

    Cảm ơn a. Quá dễ hiểu ạ.

  • @quylecao2743
    @quylecao2743 4 ปีที่แล้ว

    hay quá anh. hi vọng học xong chuỗi video của anh thì xin dc việc làm.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      chào bạn, series này a chỉ cung cấp các kiến thức về react hooks thôi nè, không có trang bị đủ hành trang cho bạn đi xin việc làm nhé. Bạn nên chuẩn bị thêm những mảng kiến thức khác nữa nha 🙂

    • @quylecao2743
      @quylecao2743 4 ปีที่แล้ว

      @@EasyFrontend cám ơn anh. videos anh rất hay và dể hiểu.hi vọng xong hết series anh sẻ làm một project thực tế.

  • @toantrinhbao3604
    @toantrinhbao3604 4 ปีที่แล้ว

    Dạy dễ hiểu. Giọng thì nghe không bị chán hay buồn ngủ.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn em nhiều nhé Toàn ơi 😊

    • @toantrinhbao3604
      @toantrinhbao3604 4 ปีที่แล้ว

      Ra nhiều clip hơn nhé anh. Nhờ anh mà em hiểu biết thêm rất nhiều

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      @@toantrinhbao3604 yeah okie em nhé Toàn, a vẫn ra đều đều nè, cơ mà tại a đang làm khoá học reactjs cơ bản, chắc tuần sau là public cho mọi người hihi, nên hôm giờ hơi bỏ bê kênh TH-cam hihi, xong a sẽ quay về lại hihi 😉

  • @phuocquang2314
    @phuocquang2314 4 ปีที่แล้ว

    Bài hay đó anh, rất mong chờ anh ra video tiếp theo 🐂

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn Quang nhiều nha, hi vọng sáng mốt sẽ có video tiếp theo nè 👍
      Hiện tại thì có gì Quang review và xem lại các videos để tổng hợp kiến thức lại y nha. 🙂

  • @ThanhHoang-vh1tc
    @ThanhHoang-vh1tc 2 ปีที่แล้ว

    hay quá, thanks bạn

  • @thuocnguyen4023
    @thuocnguyen4023 4 ปีที่แล้ว

    video bổ ích quá ạ. Tuy nhiên em thấy những clip dạng này bây giờ khá nhiều rồi ạ. Nếu có thể anh làm những clip dạng practices thì sẽ trực quan và dễ hiểu hơn ạ. Cảm ơn anh chia sẻ kiến thức

    • @nguyentienvnnll6920
      @nguyentienvnnll6920 4 ปีที่แล้ว

      *1. A hậu nói seri đi từ cơ bản của hooks*
      *2. Sẽ có code cùng nếu bạn đã xem video trước + cuối video này ^^*

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      lol cảm ơn fan cứng Tiến, nắm thông tin rất rõ về series này hihi
      hi Thược, như bạn Tiến đã chia sẻ, mình có code nữa nhé, mà không phải trong video này nè! 🙂

  • @edwardelrics2138
    @edwardelrics2138 4 ปีที่แล้ว

    xong series này giới thiệu redux luôn huynh đài ơi :D hehe huynh nói chuyện bánh cuốn quá :D

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      hehe cảm ơn bạn nhiều nhaaaa! Mình ghi nhận ý kiến của bạn nhé, sau series này mình sẽ xem mọi người vote gì nhiều nhất rồi làm tiếp nhé hehe

  • @datcao7209
    @datcao7209 3 ปีที่แล้ว

    mong a làm 1 clip giới thiệu cách sử dụng socket io ạ

  • @khailam7681
    @khailam7681 4 ปีที่แล้ว

    chà hơn 1k like rồi, hay quá anh ơi

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      hihi cảm ơn e nhiều nha Lâm 😍
      Cho a xin hỏi tí e có biết gì thêm về useState() sau khi xem video hk Lâm?

    • @khailam7681
      @khailam7681 4 ปีที่แล้ว

      @@EasyFrontend tuần trước học ko hiểu tại sao lại có [name, setName] hay tại sao lại this.setName này nọ, mà coi xong thì em hiểu rồi,hehe, a update kịp thời ghê

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Khải Lâm hahaa may mắn ghê, a lại ra video đúng thời điểm, cảm ơn e đã phản hồi cho anh biết nhé 👍

  • @ChiNguyen-ft4yq
    @ChiNguyen-ft4yq 4 ปีที่แล้ว

    Tuyệt vời, cảm ơn anh

  • @trongnguyenduy3936
    @trongnguyenduy3936 3 ปีที่แล้ว

    cảm ơn a

  • @vyhuynh718
    @vyhuynh718 3 ปีที่แล้ว

    Video rất hay, bổ ích và dễ hiểu bạn ơi. Cám ơn bạn nhiều. Chúc kênh ngày càng phát triển nhé! Bạn làm thêm nhiều video về useContext(), useReducer, useSelector()....nữa được không ạ?

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      yeahhh cảm ơn Vy nhiều nhiều nhé hihi 😊
      Sắp tới mình có dự định quay lại update nội dung, nhưng mà chắc sẽ làm trong khoá reactjs trên udemy thôi á Vy ơi. Còn hiện tại thì mình đang active sản xuất cho series NextJS 😊

    • @vyhuynh718
      @vyhuynh718 3 ปีที่แล้ว

      @@EasyFrontend bạn cho mình xin link khóa học udemy nhé. Cám ơn bạn. Hi vọng bạn sẽ ra thêm nhiều video nữa!

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว +1

      Yeah cảm ơn bạn Vy nhiều nhiều nhé 😍
      Link tổng hợp các videos / series: www.ezfrontend.com/blog/tong-hop-tai-lieu-hay-tu-easy-frontend
      Bên dưới là các links khoá học cho bạn tham khảo nhen
      Fan cứng thì xem được videos chỉ dành riêng cho members (fan cứng)
      ---
      Easy Frontend - Code xịn hơn mỗi ngày
      🔥 Khoá học Javascript: course.ezfrontend.com/javascript
      🎁 Khoá học ReactJS: course.ezfrontend.com/reactjs
      🎯 Fan cứng Easy Frontend: bitly.com/easy-fan-cung

  • @dungvo7166
    @dungvo7166 4 ปีที่แล้ว

    Trở thành fan cứng của anh :D

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      haha cảm ơn em nhiều nha Dũng =))) hi vọng các videos của anh giúp ích được nhiều cho em 😊

  • @ucnguyentrung1421
    @ucnguyentrung1421 3 ปีที่แล้ว

    quá hay lun !

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      yeah cảm ơn em nhiều nhé Đức 😍

  • @ninjacode5305
    @ninjacode5305 4 ปีที่แล้ว

    tuyệt vời

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Ninja Code hihi cảm ơn em nhiều nhé 😊

  • @minhcuongha6491
    @minhcuongha6491 ปีที่แล้ว +1

    Anh ơi anh cho em hỏi vấn đề như này. Cái useState nó trả về [] mà anh gán nó là const. Vậy khi setState sao cái state nó đổi được vậy anh. Const thì không gán lại được chứ nhỉ

    • @EasyFrontend
      @EasyFrontend  ปีที่แล้ว

      hi em, mỗi lần render là một lần nó chạy lại cái hàm của mình, với lại em ko sửa đổi giá trị state trực tiếp được, phải thông qua hàm setState, sau đó giá trị state mới sẽ có ở lần render tiếp theo em nha

  • @phucminh7985
    @phucminh7985 4 ปีที่แล้ว +2

    *Nào a rảnh lập 1 cái group học tập của kênh "Easy Frontend" trên facebook luôn a ơi*

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +2

      hihi yeahhhh okie Phúc ơi, mà chắc mình lập page luôn nhỉ? hay là chỉ group thôi? Do mình mới làm nên không rõ nên làm cái nào? 🙂

    • @phucminh7985
      @phucminh7985 4 ปีที่แล้ว

      @@EasyFrontend Cả 2 cũng đc a ơi. fanpage để a chia sẻ tài liệu, video...Còn group để tụi e dễ trao đổi thảo luận or đăng câu hỏi....

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +2

      Phúc Minh À okie em hehe, lol có thêm việc làm cho anh, để a tìm fan cứng phụ anh làm =)))

    • @datwilliama2
      @datwilliama2 4 ปีที่แล้ว

      @@EasyFrontend em nè kk

  • @nguyencong502
    @nguyencong502 3 ปีที่แล้ว +1

    big like, thanks anh!

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      Yeah cảm ơn em nhiều nhé Nguyen

  • @nguyenucmanh5378
    @nguyenucmanh5378 4 ปีที่แล้ว

    hay qua a

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn em nhé Mạnh 😍

  • @QuangNguyen-zb6jg
    @QuangNguyen-zb6jg 4 ปีที่แล้ว

    Hay quá anh ơi

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Quang Nguyễn hehee cảm ơn e nhiều Quang ơiiii 🥰 Cho a xin hỏi tí, e có học được gì mới từ video hk Quang?

  • @dungduong7585
    @dungduong7585 4 ปีที่แล้ว

    hay quá anh ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Dung Duong hihi cảm ơn e nhiều nha Dũng, em có học được điều mới từ video hk e hen? 🙂

  • @nambui526
    @nambui526 4 ปีที่แล้ว

    cảm ơn a ạ

  • @MinhLe-tw7tv
    @MinhLe-tw7tv 4 ปีที่แล้ว

    thêm các video về hook đi anh. em đnag làm dự án về reactjs, và mới xài được 2 thằng là useState, với useeffect thôi.
    và cacgs viết unitest cho nó.
    from ReactJS Group

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      Lê Minh Hồ hihi nhất định nhé bạn, mình vẫn tiếp tục làm thêm nè hihi, bạn dùng useState() rồi chắc biết hết mấy cái mình share trong video bạn hen?

  •  4 ปีที่แล้ว

    Anh ơi, em thấy ở mục *4. Thêm ví dụ dùng useState()* anh có nhầm ở chỗ sử dụng map() cho todoList state phải không ạ?
    Thuộc tính key của phải có giá trị là {index} và textContent của phải là {todo} nhỉ.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi Trì, em ko nên dùng index cho key nhé. Vì lỡ số phần tử thay đổi, index sẽ bị thay đổi, lúc đó reactjs sẽ detect sai item nào bị thay đổi nè. Em có thể đọc thêm docs chỗ này nhen reactjs.org/docs/lists-and-keys.html#keys 🙂

    •  4 ปีที่แล้ว

      @@EasyFrontend Dạ cảm ơn anh ♥ vậy thì initial state chúng ta phải set nó là một mảng chứa các giá trị là object gồm 2 thuộc tính là "id" và "title" chứ anh nhỉ. em thắc mắc chỗ đó á

    •  4 ปีที่แล้ว

      @@EasyFrontend Trước giờ em hay dùng index cho key. Cảm ơn anh đã giúp em biết thêm được thông tin hữu ích này 😊

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      Khanh Trì Nguyễn à tại a hk muốn làm phức tạp lên á Trì hehe, trong ví dụ này ds todo thì cái todo thường ko trùng nhau òi nên xài tạm vậy hehee, còn trong thực tế em sẽ dùng key là cái object id nha Trì 😉

  • @giabaophung3832
    @giabaophung3832 3 ปีที่แล้ว +1

    Cám ơn anh về bài giảng. Anh cho e hỏi là 1 project tầm trung làm với API thì mình có nên build full React Hook k anh ?
    Em cảm ơn ạ

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว +1

      hi Bảo ơi, hiện tại dự án mới a đều recommend react hooks hết em nha, size cỡ nào cũng đc hehe

    • @giabaophung3832
      @giabaophung3832 3 ปีที่แล้ว

      @@EasyFrontend dạ e cảm ơn a hehe. Nhờ mấy cái của a mà thông hết, donate phát ủng hộ a thêm video hehe

  • @TamPham-oe2xc
    @TamPham-oe2xc 4 ปีที่แล้ว

    Giờ mới biết là 1 cái merging và 1 cái replacing :))

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hehe rất vui khi bạn học được điều mới từ video của mình 👍

  • @annguyenuc940
    @annguyenuc940 2 ปีที่แล้ว

    Dạ anh ơi cho em hỏi tại sao khi dùng callback ở initialState thì nó chỉ chạy duy nhất 1 lần ạ, anh có video hoặc giải thích về callback kĩ hơn k ạ

    • @EasyFrontend
      @EasyFrontend  2 ปีที่แล้ว

      hi An, đó là cách hoạt động của nó em nhen
      khi truyền dạng callback, nó sẽ đảm bảo giúp em cb chỉ đc gọi đúng một lần hehe

  • @TienBui-ot5pd
    @TienBui-ot5pd 3 ปีที่แล้ว

    const [ productOrders , setProductOrders ] = useState( () => {
    return getProductOrther();
    } );
    function getProductOrther {
    call API
    }
    Anh ơi cho em hỏi khi Call API thì em có cần đăt Function getProductOrther vào cái useEffect() không Anh

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว +1

      hi Tiến, useState() callback ko support async function em nha.
      Trường hợp này là em khởi tạo mảng rỗng trước.
      Rồi trong useEffect() em mới gọi APIs và cập nhật lại state nhen, em xem các videos tiếp theo sẽ rõ phần này hehe

  • @trungminh549
    @trungminh549 4 ปีที่แล้ว

    like mạnh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Trung Minh hihi thanks Trung nhiều nhé 😉

  • @vinhhuynh8146
    @vinhhuynh8146 2 ปีที่แล้ว

    Cho em hỏi, để quản lý các hook trong reactjs thì anh sử dụng cái gì để quản lý ạ

    • @EasyFrontend
      @EasyFrontend  2 ปีที่แล้ว

      à anh chưa rõ câu hỏi của em lắm Vinh 😉
      anh có một folder hooks rồi gom vào đó thôi à em hehe

  • @tamhoanguc6720
    @tamhoanguc6720 3 ปีที่แล้ว

    a có video nào hướng dẫn về authentication và authorization trong react không ạ? Nhờ a Hậu tag hoặc post link vào cmt này giúp e với. E tìm không thấy. Thanks a.

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว +1

      th-cam.com/video/Jp6Ce64Adaw/w-d-xo.html
      Em check video này nha Tâm hehe

    • @tamhoanguc6720
      @tamhoanguc6720 3 ปีที่แล้ว

      @@EasyFrontend cám ơn a nhiều.

  • @namnhan8368
    @namnhan8368 4 ปีที่แล้ว

    Video rất hay và hữu ích ạ... Anh cho em hỏi là theo em được biết là this.setState là một asynchronous còn đối với useState thì sao ạ?

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      hihi cảm ơn e nhiều nhé, cơ bản 2 ông thần này đều dùng feature state của ReactJS, nên cơ chế nó phải giống nhau nhé Nam 😉

  • @dinhmannguyen7968
    @dinhmannguyen7968 4 ปีที่แล้ว

    sao mình thấy cái đoạn initialState dùng callback hay ko nó cứ giống nhau nhỉ, cùng gọi 1 lần như bạn nói

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi bạn ơi, có một số điểm bạn lưu ý thế này:
      1. Cái inititalState chỉ có ý nghĩa 1 lần đầu, nên việc mình dùng callback hay ko thì nó cũng chỉ có ý nghĩa lần đầu tiên nè.
      2. Điểm khác biệt của việc dùng callback là:
      - Hàm callback sẽ chỉ được gọi 1 lần duy nhất.
      - Còn với việc ko dùng callback, ví dụ tính toán trực tiếp ở functional component, thì mỗi lần re-render, hàm sẽ được chạy lại từ đầu, trong đó bao gồm cả việc tính toán cái initial state của mình (mà rõ ràng những lần render sau thì cái vụ tính toán initialState ko còn ý nghĩa nữa, nên hơi thừa, và sẽ bị ảnh hưởng đôi chút nếu mà tác vụ đó phức tạp và tốn thời gian hehe)
      Hi vọng là giải thích được cho bạn hiểu 🙂

  • @thuannguyenlehoa9711
    @thuannguyenlehoa9711 ปีที่แล้ว

    A ơi cho e hỏi. Sự khác nhau giữa setCount(count+1) và setCount(prev => prev + 1), giả sử count = 1 thì lúc này cả 2 thằng đều như tức là đều return = 2. Nhưng có 1 số trường hợp sử dụng thêm useCallback thì nó lại khác ạ. useCallback( () => { setCount(count+1) }, [] ) và useCallback( () => { setCount(prev => prev + 1) }, [] ). Khi click thì thằng đầu tiên nó chỉ chạy 1 lần rồi ngưng nhưng thằng thứ 2 chạy nhiều lần. A có thể giải thích dùm e được k ạ? e cảm on.

    • @EasyFrontend
      @EasyFrontend  ปีที่แล้ว

      hi em, nôm na ngắn gọn nó sẽ thế này
      setCount(count + 1): lấy state hiện tại tăng 1 --> setCount(1 + 1) --> setCount(2)
      setCount(x => x + 1): lấy state mới nhất tăng 1 --> setCount(callback) --> callback sẽ được chạy sau và luôn đảm bảo lất state mới nhất, còn thời điểm trên component nó ko lấy state em nhen
      trường hợp đầu tiên, em truyền vào value để bắt nó cập nhật
      trường hợp sau, em truyền vào cái hàm, kiu nó tính theo công thức cho mình, và nó luôn đảm bảo state là mới nhất

    • @thuannguyenlehoa9711
      @thuannguyenlehoa9711 ปีที่แล้ว

      @@EasyFrontend dạ e cám ơn a, e còn 1 vấn đề 1 thắc mắc thì e có thể nhắn tin riêng cho a hỏi được k ạ. Cái này về javascript. A có thể giải thích e về run-rime của async function? Liệu e có thể nhắn tin hỏi được k ạ?

  • @thengoc8294
    @thengoc8294 4 ปีที่แล้ว

    Em đang thấy hơi khó hiểu Initial state ạ, Có nghĩa mình sử dụng callback để cho nó lưu lại giá trị đầu tiên, không cho nó thay đổi à anh. Vậy những lúc nào nên dùng ạ. Em cảm ơn ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi Học, hiện cái initial state đó chỉ có ý nghĩa duy nhất cho lần render đầu tiên, những lần re-render sau, nó ko có tác dụng gì cả. Chính vì lý do đó, nếu mà cái hàm tính initial state cần tính toán nhiều, phức tạp thì nên dùng callback.
      - Không dùng callback: thì lần render nào nó cũng chạy lại việc tính toán initial state, mà điều này ko có ý nghĩa.
      - Có dùng callback: thì nó chỉ chạy hàm tính toán initial state lần đầu tiên render thôi, mấy lần sau nó ko tính lại initial state nữa, cái này ngon nè hehee

  • @nguyenmuoi.66
    @nguyenmuoi.66 3 ปีที่แล้ว

    anh ơi ví dụ em có nhiều state như: content, title,.... setState từ cái input thì em phải tạo từng đấy cái useState ạ, và khi em tạo hàm onchange thì phải tạo cho từng cái ạ, a cho em giải pháp với

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      hi em, cơ bản là như vậy nè.
      Hoặc em có thể tạo một state chung gọi là formValues, rồi mỗi control là một key trong object đó nhen.
      Nhưng trong thực tế thì mình thường sử dụng một thư viện quản lý form cho việc này em nhen, điển hình như React Hook Form hoặc Formik, nhưng RHF thì tốt hơn vì tiếp cận theo hướng uncontrolled component để khắc phục được performance issue khi form của em nó có nhiều controls (> 20 controls) 😉

  • @thangtruong3584
    @thangtruong3584 3 ปีที่แล้ว

    E code backend Java thuần OOP. Qua đây ngta lại ngại OOP, làm ra hẳn 1 cái feature để sài function compo powerful hơn , chán quá anh ạ

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      haha xưa mình làm OOP, cơ mà bên FE ko phù hợp lắm, viết theo functional nó tường minh và rõ ràng hơn nhiều lắm luôn hihi, em viết thử thời gian xem sao, biết đâu thích luôn hehe 😍

    • @thangtruong3584
      @thangtruong3584 3 ปีที่แล้ว

      @@EasyFrontend vâng a ơi, e sẽ cố gắng :)

  • @trongtringuyen5354
    @trongtringuyen5354 3 ปีที่แล้ว

    hàm setState của hook là async hay sync vậy anh

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว

      hi em, setState là async em nha hehee

  • @ongTrinh-mi6js
    @ongTrinh-mi6js 4 ปีที่แล้ว

    em chào anh ạ.anh cho em hỏi functional component này có thể thay thế hoàn toàn class component không ạ.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Phạm Dũng hi Dũng ơi, hiện tại là mình hoàn toàn có thể thay thế được class component nhen. Những gì class component làm đc thì giờ có hooks functional component cũng làm được tương tự nhen, thẩm chí là tốt hơn luôn nè hehee

  • @nguyenphuongnam1232
    @nguyenphuongnam1232 4 ปีที่แล้ว

    anh ơi setState là async đúng không anh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      Yeah đúng rồi đó Nam ơi 😉

  • @tranhoang2930
    @tranhoang2930 4 ปีที่แล้ว

  • @tuyennguyenngoc9891
    @tuyennguyenngoc9891 4 ปีที่แล้ว

    thầy ơi react hook nó giống nhau giữa reactjs với react native phải ko thầy

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi Tuyên ơi, hooks là tính năng của React nói chung, mà React Native cũng dùng react nên nó như nhau nhé Tuyên 😉

  • @NhungLe-ni9ec
    @NhungLe-ni9ec 4 ปีที่แล้ว

    Hay quá anh ơi

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Nhung Lê hihi cảm ơn e nhiều nhé Nhung, link của slide trong phần mô tả video nha Nhung 🙂

    • @NhungLe-ni9ec
      @NhungLe-ni9ec 4 ปีที่แล้ว

      Anh hậu ơi, anh check lại em với, em xem phần mô tả k có ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      @@NhungLe-ni9ec Hi Nhung, sorry Nhung, a cũng mới kiểm tra lại mà không thấy. Anh mới cập nhật lại òi á.
      Link ở đây luôn cho Nhung dễ lấy hen drive.google.com/open?id=1Whnf_XkXGnawOU9Cobw9rzZCHwmbE6of 😊

  • @duymanhvu5297
    @duymanhvu5297 4 ปีที่แล้ว

    anh ơi chỗ initColor thay vì truyền callbacl vào useState em có thể vẫn viết như bình thường bên trên useState và sử dụng useMemo được không anh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi Mạnh, theo anh thì ko nên nè, vì cái initColor nó chỉ xài đúng 1 lần đầu à 🙂
      Nên tính toán xong xài 1 lần rồi thôi, mấy lần render sau ko có tác dụng gì hết nè 🙂

    • @duymanhvu5297
      @duymanhvu5297 4 ปีที่แล้ว

      @@EasyFrontend em có xem bài video về useMemo của anh thì cũng tương tự như initColor ý a, với useMemo kèm theo dependency là empty array thì nó cũng chỉ tạo initColor một lần duy nhất, những lần render sau không tạo lại mà anh

  • @huyvuduc2511
    @huyvuduc2511 4 ปีที่แล้ว

    anh ơi! anh có thể tổng hợp tất cả nhưng tài liệu này thành một bộ tài liệu react và public đc không ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      hi Huy, hiện a đã tổ chức playlist trên channel của anh rồi á, em có share public mấy cái playlist này nhen ❤️

  • @thangdp9625
    @thangdp9625 4 ปีที่แล้ว

    tại sao lại phải clone ra 1 cái array mới ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      à em ơi, mình clone ra mảng mới để array mới có ref khác vs array hiện tại, như vậy react mới biết là state array này thay đổi. Nếu ko clone thì react cứ ngỡ là mảng ko thay đổi em nhé 😉

    • @thangdp9625
      @thangdp9625 4 ปีที่แล้ว

      Easy Frontend e rất cảm ơn ạ

  • @dungduong7585
    @dungduong7585 4 ปีที่แล้ว

    anh ơi em mới học react, em có tìm hiểu rồi. nhưng chưa rõ lắm. anh có thể chỉ em cách add class, hay remove class trong react.js được k ạ.
    cảm ơn anh nhiều

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +3

      À phần này thì khá là đơn giản.
      Nếu em muốn add/remove class theo một điều kiện nào đó thì làm như sau:
      Ví dụ em có cái biến điều kiện là: const isActive = true/false;
      Trong template của em: Your item
      Ý nghĩa, nếu isActive = true --> add class active
      Nếu isActive = false --> remove class active, lúc này class trở thành empty.
      Hi vọng giải đáp được thắc mắc của em. 🙂

    • @dungduong7585
      @dungduong7585 4 ปีที่แล้ว

      @@EasyFrontend cảm ơn anh ạ. mà anh ơi, Component với function mà anh đang dạy, có thể lồng ghép vào nhau được k anh.

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว +1

      Dung Duong à cái này thì hoàn toàn được nha Dũng. Em coi lại video đầu tiên của series này để hiểu rõ hơn nha Dũng hehe

    • @dungduong7585
      @dungduong7585 4 ปีที่แล้ว

      @@EasyFrontend à dạ. anh nhiệt tình mà dạy rất hay ạ.
      rất có tâm và tầm ở trên cao
      chúc anh mạnh khỏe, ra nhiều video hay ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Dung Duong Cảm ơn e nhiều nhé Dũng. E cũng giữ sức khoẻ nha, gặp những bạn siêng học như e, a rất vui nè. Cố gắng học tập, nếu ko hiểu có thể trao đổi với anh nha! 🙂

  • @BaoTran-qb9ym
    @BaoTran-qb9ym 4 ปีที่แล้ว

    Anh có làm nodejs ko anh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hi Bảo ơi, hiện thì a hk có làm NodeJS nè, chỉ có tập tành phá phá mấy cái đơn giản thôi à 🙂

  • @voxuanhoa1166
    @voxuanhoa1166 2 ปีที่แล้ว

    em thắc mắc mãi ở phần ví dụ 4 của phần todolist cái chỗ key = {todo.id} với cả {todo.title}, id với title ở đâu ra nhỉ, hại não quá:)))

    • @EasyFrontend
      @EasyFrontend  2 ปีที่แล้ว

      hi Hòa, chỗ này anh lấy ví dụ bị sai cái giá trị khởi tạo em nha, sr em nhiều
      Danh sách nó phải là một mảng các objects mới đúng hen 😭

    • @voxuanhoa1166
      @voxuanhoa1166 2 ปีที่แล้ว

      @@EasyFrontende đang xem mấy video sau của anh về useState mới hiểu chỗ đó ạ, video a giảng dễ hiểu quá, cảm ơn a nhiều:))) 😄

  • @TienBui-ot5pd
    @TienBui-ot5pd 3 ปีที่แล้ว

    const [ person , setPerson ] = useState ({ name: 'Hau' , color: 'red' })
    setPerson({...person, name:'Hello'})
    thì không đươc nha Anh.
    Nó vân ra {name: 'Hau', color:'red'}
    Nhưng Nếu setPerson({...person, color:'black'})
    thì được nha {name: 'Hau', color:'black'}

    • @EasyFrontend
      @EasyFrontend  3 ปีที่แล้ว +1

      hi Tiến, hơi vô lý nè, em thử kiểm tra lại kĩ nhé 😉

    • @TienBui-ot5pd
      @TienBui-ot5pd 3 ปีที่แล้ว

      @@EasyFrontend hihi ..... ok roi Anh

  • @NguyenMinh-nr8iv
    @NguyenMinh-nr8iv 4 ปีที่แล้ว

    anh ơi state đọc là s tây hay s tết ạ =))

  • @kienam5330
    @kienam5330 4 ปีที่แล้ว +1

    hay qua anh

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      hihi cảm ơn e nhiều nhé Kiên! Cho a xin hỏi tí, e có học được gì mới từ video hk Kiên? 🙂

    • @kienam5330
      @kienam5330 4 ปีที่แล้ว

      @@EasyFrontend em có theo dõi fb anh , anh mở lớp dạy front-end ạ

    • @EasyFrontend
      @EasyFrontend  4 ปีที่แล้ว

      Kiên Đàm à anh cảm ơn e nha Kiên, a thì có đang dạy khoá FE bên Nordic Coder nè 🙂