React hooks: 15 - So sánh useCallback và useMemo 😎 (2020)

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024

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

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

    Hehe cảm ơn bạn đã xem video của mình! ❤️
    Cho mình xin hỏi bạn có đang dùng useCallback vs useMemo không?
    Nếu có thì dùng trong trường hợp nào vậy nè? 🙂

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

      Theo em thì dùng useCallback khi có param truyền vào còn còn dùng useMemo được hết

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

      à okie Đạt, mà thực tế em đã apply vào trường hợp nào chưa Đạt hen? 🙂

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

      @@EasyFrontend em có đọc qua thì khi dùng useMemo có param truyền vào là một function thì vẫn bị re-render

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

    Dìa diaaa, xong list này rồi, anh giảng rất hay. Có gì thắc mắc thì anh cũng trả lời hết, cảm ơn anh rất nhiều

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

      Wohoo tuyệt vời Tú ơi! 🎉 Chúc em enjoy học tập series mới nhé hihi 😊

  • @nghiabasil
    @nghiabasil 7 месяцев назад

    Tóm lại là useCallback được dùng cho tính toán hàm, còn useMemo dùng cho biến để lưu trữ giá trị. hehe cũng dễ hiểu. Cảm ơn anh Hậu

    • @EasyFrontend
      @EasyFrontend  7 месяцев назад +1

      yeah có một lưu ý nhỏ là mình chỉ dùng khi thật sự cần thiết thôi em nhen
      ref: kentcdodds.com/blog/usememo-and-usecallback

    • @nghiabasil
      @nghiabasil 7 месяцев назад

      @@EasyFrontend dạ em cảm ơn anh Hậu

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

    Em đã cày gần hết các video trong dsach các video của a 🤩🤩

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

      u trời, quá xịn luôn em, hi vọng các videos hữu ích với em 😊

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

    Em cảm ơn anh ạ, nhờ có những video như thế này của anh mà em có thêm rất nhiều kiến thức bổ ích cho nền tảng React của mình. Chúc anh sức khỏe và thanh công trong con đường sự nghiệp của mình ạ.

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

      Yeahhhh cảm ơn Tân rất nhiều, a rất vui khi nhận được phản hồi từ em. Chúc em thật nhiều sức khoẻ nhen 😉

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

    Học tới đây mới tiện cảm ơn a, nhờ a mà những ae trái ngành, ko có điều kiện như e mới đc học những kiến thức thực tế như này, mặc dù càng học càng thấy khó nhưng nhờ vậy mới cải thiện đc mindset của mình :D
    Nhân tiện e mún hỏi chưa có kt nào về Redux sau series này học lun Redux vẫn ổn phải ko a

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

      hehe ngon lành, cảm ơn em đã dành thời gian học trên kênh của anh nha.
      Sau series hooks, em có thể học tiếp series về Redux nha 😉

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

    Hãy làm tốt....... đi. Truyền cảm hứng quá anh ơi, giờ rãnh mới cày được mấy video trong series này hihi

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

      hihi cảm ơn em nhiều Bảo oiwiiiii 😍 Trong quá trình cày mà có gì ko hiểu thì cứ thoải mái trao đổi với a nha hehee

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

    kiến thức của anh chia sẻ rất chi tiết và bổ ích, cám ơn anh Hậu nhiều ha !

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

      yeah cảm ơn em nhiều nhiều nhé Huy ơi 😍

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

    Cảm ơn anh đã dành thời gian và công sức chia sẻ kiến thức tới mọi người :D.

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

      hihi cảm ơn Trung nhiều nha, thật ra cũng đuối thiệt, mà mn nhiệt tình xem nên cũng ráng làm nè hihi 😍

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

    Cảm ơn anh nhiều vì series rất là dễ hiểu ạ, vừa xem vừa cười vừa nói theo anh luôn :v

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

      hahaa rất vui vì các videos hữu ích với em nè 😍 Cảm ơn em đã ủng hộ kênh nhé ❤️
      Em có thể xem thêm các nội dung khác ở đây nhé!
      www.ezfrontend.com/blog/tong-hop-tai-lieu-hay-tu-easy-frontend

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

      @@EasyFrontend Dạ em cảm ơn anh ạ!

  • @Mars-jl4ih
    @Mars-jl4ih 3 года назад

    Anh dạy dễ hiểu quá hehe mong anh sớm dạy thêm những phần còn lại và thêm chút hook nâng cao ạ

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

      hihi cảm ơn em nhiều nhiều nhen, nếu em muốn học cách tổ chức các modules trong một dự án thực tế của reactjs như thế nào luôn thì có thể tham khảo khoá học reactjs trên udemy của anh nhé 😍

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

    hay quá anh ơi. kiến thức bổ ích ạ. hóng thêm những clip về authentication + authorize

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

      hihi cảm ơn em Thược nhiều nhé, phần auth dự định sẽ làm trong project thực tế nè 😉

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

    Bổ ích quá ạ. cảm ơn anh nhiều. Mong anh ra series đều đều

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

      hihi cảm ơn em nhiều nhé Thành 😉 A sẽ cố gắng giữ lịch ra video vào 3 buổi tối 2, 4, 6 nè 😉

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

    Like!!! video của a rất hay, mong a ra video làm một project để cho mọi người hiể rõ hơn

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

      hi Khánh ơi, cái series redux-photo-app là project thực tế của reactjs đó Khánh, em có thể tham khảo thêm nghen hehee

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

    Cảm ơn anh Hậu nhiều nhé, những video rất hữu ích ạ.

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

      yeah yeah cảm ơn em nhiều nhé Thành ơi 😍

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

    Lần đầu xem video của anh, cách anh nói rất hay :D

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

      yeahhh cảm ơn em nhiều Hùng ơi, hiện trên kênh có nhiều series rồi nè. Nếu em quan tâm có thể tham khảo thêm để tìm hiểu nhen! 😉 Có thắc mắc gì thì cứ trao đổi với a nhé!

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

    A làm thêm mấy Hooks còn lại đi anh . A nói hay và dễ hiểu lắm ạ !!

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

      Yeahhhh cảm ơn em nhiều nhé Anh ơi, anh đang tập trung làm cho xong khoá học ReactJS, xong a sẽ quay lại với mọi người nhé hihi 😊

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

    Document CỦA A DỄ HIỂU GHÊ

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

    quớ dễ hiểu , thanks a daiiiii

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

    Hay qá anh ơi!

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

      hehe cảm ơn em nhiều nhiều nhé Thiện 😍

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

    Bài giảng rất hay, cảm ơn bạn.

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

      Yeah cảm ơn a Toản nhiều ạ! 😍

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

    Cảm ơn em, rất hay.

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

      dạ e cảm ơn a Tường nhiều nhé 😉

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

    Anh có thể hướng dẫn về reselect không ạ, em đọc doc của React Hook nhưng chưa hiểu về cách áp dụng trong thực tế lắm. Cám ơn anh

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

      hi Huỳnh, cái này thì anh hiện có làm trong khoá học reactjs trên udemy.
      Cơ bản là khi em có state được tính toán từ các state có sẵn từ redux, thì mình có thể dùng reselect để tính toán KQ và lưu lại, nó chỉ tính lại khi state phụ thuộc thay đổi.
      Nói cụ thể hơn là giỏ hàng đi
      Redux lưu danh sách các items trong giỏ hàng, nhưng ko lưu con số tổng tiền giỏ hàng
      Giờ mình sẽ dùng reselect createSelector() để giúp mình tính tổng tiền giỏ hàng từ danh sách các items trong giỏ hàng, và nó chỉ tính lại tiền khi danh sách các items trong giỏ hàng thay đổi :)

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

    Chào anh! Đây là video cuối cùng của phần hooks hả anh?

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

      hi Mẫn, cái này chỉ là tạm hết phần cơ bản thôi nè. Anh sẽ làm tiếp một series khác chứa phần hooks nâng cao hehee

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

    Anh ơi anh hương dẫn về useContext và useReducer đi ạ. Và sử dụng react-router-dom để setup 1 project đi ạ

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

      hi Trường,
      Về 2 cái hooks kia, để hôm nào có time a sắp xếp làm hen.
      Còn routing thì em tham khảo video này nha ruclips.net/video/mAhUJdf0Kug/видео.html 🙂

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

      Easy Frontend mình đặt router như thế nào cho 2 phần UI và Admin trong 1 project vậy a

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

    a ra tiếp đi anh ơi ♥

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

      hihi hiện anh đang cày series typescript em ơi, có dịp a quay lại sẽ làm thêm nhen hehe

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

    Cám ơn anh, bài giảng hay quá ạ!!!!

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

      ngon lành, cảm ơn em nhé 😍

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

    seri hay quá. Cảm ơn bác nhiều nhé!

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

      yeah rất vui khi video hữu ích cho mn nè 😍

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

    cám ơn anh

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

    Bạn ơi!!! làm tiếp 1 video về useReducer đi

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

      Dung Tri hihi okie bạn nhé, mà mình sẽ làm cái này ở series nâng cao nhen 😉

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

    chưa có bài về useReducer à anh 😍😍😍

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

      haha chưa em ơi, a chưa quay về lại chủ đề này haha

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

    Hóng a hướng dẫn làm 1 project bằng reactjs 😁

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

      hehe Hậu ơi, cái series redux photo app là project thực tế đó nè hehe, hoặc tuần sau a ra khoá reactjs trên Udemy là full options 😍

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

      @@EasyFrontend Dạ a..Lót dép đợi khóa của a =)

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

    đã xem hết . Thanks anh

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

    Video rất hay , cảm ơn anh

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

    hay quá a ơi. mà PV junior có hỏi về 2 cái này ko a ?

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

      hehee chuyện gì cũng có thể xảy ra em ơi =))) tuỳ ông phỏng vấn thôi à hehee

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

    Anh Hậu ơi làm về Nextjs đi anh.

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

      à sau series typescript em nha, a đang làm ts, em có thể đăng ký fan cứng để xem đc full series em nhen 😍

  • @tuantaipham6706
    @tuantaipham6706 7 месяцев назад

    A ơi trong trường hợp data của Component xài useMemo đó có thể bị thay đổi, chẳng hạn như cart chẳng hạn, thì nếu mình chỉ muốn re-render khi biến cart thay đổi thì mình set:
    const data = useMemo(() => cart, [cart]);
    phải không ạ?

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

    Dạ anh ơi cho em hỏi nếu dùng class component thì dùng cái gì để thay thế 2 hook này a. Em không có làm việc với class nên không rõ lắm. Mong a giải đáp. Em cám ơn!

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

      hình như là ko có cái tương đương em nhen hehe

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

    Đã xem hết 15 video. Video rất hay và dễ hiểu đối với newbie như mình. Cảm ơn Hậu rất nhiều. Chúc Hậu sức khỏe và thành công.
    Sẵn cho mình hỏi. Bạn dùng phần mềm nào quay video vậy ạ?

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

      Yeah cảm ơn bạn đã cày xuyên suốt series với mình nhé ❤️
      Mình làm video với bộ công cụ này:
      - Camera: dùng điện thoại cá nhân iPhone X
      - Quay màn hình: dùng cái có sẵn của MacOS - QuickTime Player
      - Biên tập video thì bạn dùng cái nào tiện cho bạn Davinci Resolve hoặc Final Cut Pro (MacOS)
      Chúc bạn thật nhiều sức khoẻ nhé! 😉

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

    ra thêm video về hook đi anh, khá hay.

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

      hihi series này tạm hết em nhen, em có thể xem thêm series react typescript + saga em nhé, bao xịn nè hihi

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

    Em cảm ơn anh về video ạ, anh cho em hỏi khi sử dụng 2 ông này thì có hạn chế hay bất lợi gì không ạ ?

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

      à 2 ông này mình chỉ dùng khi thật sự cần thiết thôi em nhen, chứ ko dùng đại trà nhen Thắng.
      kentcdodds.com/blog/usememo-and-usecallback
      em đọc tham khảo thêm bài blog này của bác Kent nhen

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

      @@EasyFrontend dạ, em cảm ơn a ạ

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

    useContext , useReducer , useImperativeHandle , useLayoutEffect, useDebugValue Mấy cái này có xem qua nhiều lần nhưng không hiểu A ơi. Có thể thêm 1 video ví dụ mấy cái này không Anh?

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

      hi em ơi, mấy cái này hơi nhiều, chắc để chia ra nhiều videos nè hehe, để a note lại, bổ sung thêm mấy cái này nhé hehe

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

    em đã xem đến đây mong anh làm thêm nói kĩ hơn về useRef e hơi mơ hồ nó và 1 cái mới ra gần đây là suspense và lazy được không a
    em cảm ơn nhiều

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

      hi Nam ơi, anh có một video nói về useRef, em check thử nha. Còn suspense vs lazy là bên phần routing rồi nè hehe 😉

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

    Tức là cách dùng của 2 cái là gần giống nhau, chỉ khác cái giá trị trả về

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

    Anh có làm video useContext với useReducer không anh

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

      hi Nam ơi, hiện tại a chưa có video về cái này òi hihi, có thời gian a sẽ sắp xếp làm thêm nghen hihi

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

    cảm ơn anh , anh nói hay qua ạ

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

      hihi cảm ơn em nhiều Vũ ơi, series hooks này có giúp ích được nhiều cho em hk Vũ? 🙂

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

    cám ơn anh

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

      Lê Bá Ngữ hehee e có học được gì mới từ video hk Ngữ? 🙂

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

    Hay quá anh ơi!.

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

      hehee cảm ơn em nhiều Anh ơi!!! 😍Em có học được gì mới từ video hk Anh? hehe

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

      @@EasyFrontend Học được cũng kha khá à Anh.

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

    Vừa coi React.memo xong qua coi liên tục clip này cho nóng hhaha

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

      hahaa xịn xò quá luôn =)))) em có học được gì mới hk e ơi? 😉

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

      Easy Frontend e học dần dần cũng dc kha khá thứ đó a :))) hóng ko biết các hook sau là gì

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

      @@MynhDaiK hahaa hay quá em, rất vui khi nghe em học được nhiều thứ từ các videos của anh nè 😉

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

    hay quá a ơi, hôm nào a làm về react-router đi ạ

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

      hi Linh, trong bài Tổ chức file của series Redux project sẽ có phần này nhen. Em check trên kênh a thử nhé hihi

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

      @@EasyFrontend học xong 15 bài này là mình qua playlist ReduxTookit hả a?

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

      Tuan Dinh à đúng rồi nha Tuấn ơi 😉

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

    a nói rõ hơn 1 chút về React.memo vs useCallback vs useMemo đi ạ

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

      Tuấn Lường Viết hi em, cho a hỏi là hiện tại e hk rõ khúc nào e hen? 🙂

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

      @@EasyFrontend em muốn so sánh rõ hơn thôi ạ

  • @TienHoang-cm2jt
    @TienHoang-cm2jt 4 года назад

    Anh Hậu ơi anh có thể có ví dụ và nói rõ hơn về vấn đề này chút được không anh :v

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

      hihi okie Hoàng nha, để khi back về custom hook nâng cao, a sẽ nói lại một vài ví dụ sử dụng 2 ông thần này hehe

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

    Cho em hỏi nếu không truyền array dependency thì nó có chạy không a? Có một anh hỏi em là useEffect và useCallback nó giống và khác gì. Em không diễn đạt được mặc dù đã sử dụng khá nhiều. Anh có thể giải thích giúp em không?

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

      hi em, mình ko truyền deps nó vẫn chạy em nha, cơ mà nếu ko truyền thì em ko nên dùng nữa, vì lần nào re-render nó cũng chạy lại, thành ra mất đi tính hữu dụng của nó là hạn chế số lần tính toán lại khi ko cần thiết em nhen 😊

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

    Đã xong video cuối cùng về react hook, quay lại udemy thôi

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

    hay anh ơi

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

    Em học cái này lần thứ n rồi. Cứ bị lộn memo với callback hiu hiu

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

      😅 quyết tâm học lần nữa rồi hk nhầm nữa em nha 😉

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

    hay quá anh :3

  • @QuanPham-vo6bf
    @QuanPham-vo6bf Год назад

    có nên đưa onChange của 1 input vào useCallback không anh?

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

      hi em, anh thấy thường là ko cần thiết e nhen

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

    Anh ơi ví dụ về useCallback có dependencies với anh ơi.

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

      hihi nhất định, a sẽ back lại với nó ở series nâng cao của hooks nhen hihi

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

    Anh Hậu ơi tiếp tục ra video về Hook nữa đi anh

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

      hahaa okie em nha Sơn ơi, để a ráng hoàn thành khóa học reactjs xong back lại với series này mà nâng cao lên khà khà

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

    Anh Hậu ơi 2021 rồi em hóng anh làm video useReducer với ạ

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

      yeah cảm ơn em nhiều nhé Dương ơi 😉Đã noted em nghen, a đã cho vào queue vào video hehe

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

      @@EasyFrontend respect ❤️

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

    hay quá a

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

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

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

    Cảm ơn anh về bài giảng nha anh. Như thế trong trường hợp mk sử dụng useCallback và useMemo rồi truyền props xuống component con mk vẫn phải sử dụng thêm React.memo nữa hớ anh... Có cách nào để khắc phục nó ko anh?.

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

      à cái này thì chịu rồi em ơi 🙂
      useCallback, useMemo giúp em memoized function/value để ko tạo ra tham chiếu mới khi ko cần thiết
      component cha re-render thì sẽ trigger component re-render, nếu em muốn khắc phục thì dùng React.memo để trường hợp props ko đổi nó sẽ ko re-renders, tuy nhiên hk phải component nào cũng cần dùng tới nhen 😉

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

      @@EasyFrontend dạ vâng em hiểu rồi ạ.

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

    Tks anh

  • @HiepTran-tv1hh
    @HiepTran-tv1hh 3 года назад

    cảm ưn anh :D

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

    khi nào tiếp tục series này anh ơi

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

      hihi chưa biết nữa Tùng ơi =))), giai đoạn này anh hơi sml với công việc nè hehe

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

    Hi anh Hậu, anh cho em hỏi là khi có 1 component con re-render dựa vào props của component cha thì mình nên dùng useMemo hay useCallback để viết component con hả anh, cả 2 cách đều được nhưng em muốn hỏi nên dùng cách nào hơn ạ. Em cảm ơn anh

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

      à anh thì ko dùng cả 2 em nhé, anh chỉ dùng khi thật sự cần thiết nhen 😉
      em tham khảo bài blog này nhen, em sẽ hiểu đc khi nào nên dùng và có nên luôn dùng hay ko hehe
      kentcdodds.com/blog/usememo-and-usecallback

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

      @@EasyFrontend hehe thanks anh ạ :D

  • @NguyenHoang-tk5ls
    @NguyenHoang-tk5ls 4 года назад

    anh cho em hỏi là:
    1. xài function inline thì có tương tự như useCallback ko ạ ?
    2. tại sao xài class component thì inline lại rerender còn functional component thì ko ạ ?

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

      hi Hoàng,
      1. Function inline là nó sẽ được tạo mới mỗi lần re-render nhen. Còn useCallback nó chỉ tạo ra function mới khi dependencies thay đổi. Nên nếu giữa các lần renders mà dependencies ko thay đổi thì nó sẽ ko tạo ra function mới nha.
      2. A chưa hiểu ý em lắm, nhưng cơ bản inline function --> luôn luôn tạo mới mỗi lần render dù là class hay functional component nha Hoàng
      Hi vọng giải đáp được thắc mắc của em 🙂

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

    Khi nào có series nâng cao vậy ạ

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

      hi Công, có một cái hook nâng cao a có share trên Facebook mà chưa làm video 🙂
      github.com/paulnguyen-mn/use-scroll-progress
      Em có thể tham khảo thêm hen.
      Phần nâng cao tiếp theo của hooks là trong series của Redux, mình sẽ dùng hooks để làm việc với Redux nè hihi

  • @505lab
    @505lab 4 года назад

    Thanks , nice video

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

    NBếu v thì 2 hook này giống useEffect anh nhỉ, khác là useEffect tác động lên component hiện tại, còn useCallback và useMemo để control các component trong component hiện tại mà mình có truyền props và mong muốn nó chỉ nhận props đó 1 lần, e hiểu v k biết đúng k ạ?

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

      hi Châu ơi, nhìn theo cái dependencies thì nó hoạt động tương tự nhau, nhưng nó khác ở chỗ:
      - useEffect(): mình muốn làm gì trong đó cũng đc, có thể thay đổi state, hoặc ko thay đổi gì hết, hàm return() sẽ là hàm clean up.
      - useCallback(): cái này nó sẽ return về cho mình một function.
      - useMemo(): cái này nó sẽ return về cho mình một giá trị.
      😉

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

    Anh ơi. Nếu ko dùng useCallback, thì những lần tiếp theo function sẽ thay đổi tham chiếu, prop sẽ thay đổi, nhưng component có bị re-render lại ko? Vì react đang dùng VirtualDOM, mà chỉ có tham chiều function thay đổi, chứ component ko thay đổi gì cả.

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

      hihi một câu hỏi hay nè Cường.
      Câu trả lời là CÓ re-render lại nhé Cường.
      Tuy nhiên sau khi hàm render() thực hiện xong, tới bước update DOM, ở đây có VirtualDOM nó sẽ so sánh, thấy ko thay đổi nó sẽ ko update DOM đâu nhé. 😉

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

    Anh Hậu ơi, cho e hỏi React nó cache lại mấy cái kết quả render của bộ props ở bộ nhớ nào vậy anh, nếu lưu cache nhiều thì có làm nặng bộ nhớ đó không, có ảnh hưởng gì đến app của mình không ạ?

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

      hi Trí ơi, cái này em tìm hiểu ông thần Virtual DOM nhé, coi cách nó xử lý ra sao nhen hehe

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

    mình có thể vừa dùng React.memo() và useMemo hay useCallback không anh, hay chỉ cần dùng 1 trong 2 thôi ?

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

      hi Duy ơi, cái này mình có thể dùng kết hợp với nhau nhé, tùy trường hợp thôi nhé, chứ không có cấm kị kết hợp với nhau nghen hihi

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

      @@EasyFrontend cám ơn anh nha

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

    hay lam

  • @AnhNguyen-li9ht
    @AnhNguyen-li9ht 3 года назад

    có phải dùng nhiều useCallback với useMemo sẽ ngốn bộ nhớ hơn không anh

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

      hi em ơi, về cơ bản thì sử dụng mấy cái này, nó tạo thêm một cache để lưu trữ kết quả trước đó, nên sẽ tốn thêm bộ nhớ hơn bình thường nha, nhưng mà cái này nhỏ quá, ko biết có ảnh hưởng gì hk? 😉

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

    Cũng lâu rồi mà ko thấy @easy frontend ra video 16

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

      hihi sr Thuỷ, gần cuối năm công việc hơi sml tí, mình chưa có nhiều time trở lại với RUclips nè hihi 😉

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

      @@EasyFrontend OK Hậu. Mình rất mong các video của Hậu ra tiếp theo. rất hay và bổ ích cho mình. Anh Hùng đâu phải là người đi cứu cả thế giới! thank All

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

    Anh ơi anh làm về filter data ở react hook đi ạ , cám ơn anh nhìu , hihi

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

      tân Phúc hihi cảm ơn rm, anh có làm phần đó ở bên useEffect nè, e check lại các videos bữa trước nha 😉

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

      @@EasyFrontend vâng

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

    em bấm like share bấm luôn cái chuông mà anh vẫn chưa ra clip mới @@

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

      hahaa anh mới đổi qua laptop khác, anh đang vật vã setup Bảo ơi, vẫn gặp một số issues hihi, a đang xử lý nó, hi vọng tuần này sẽ xong và có được video đầu tiên ở laptop mới hihi

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

      @@EasyFrontend mong đợi :v từng ngày

  • @dungpham-kt1tr
    @dungpham-kt1tr 3 года назад

    good video

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

    ủa có video tiếp theo nào đâu ta

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

      à sr em, đợt đó anh làm xong bận, nên hk có làm nữa hihi, series này tới đây là ngưng rồi em nhen hehee

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

      @@EasyFrontend kkkk, vậy em xem típ series redux

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

    Em đang cực kì confused, khi sử dụng với Class, thì khai báo arrow function là sẽ không bị tình trạng recreate lại khi rerender. Nhưng với Hook thì sẽ gặp tình trạng này, nhưng dùng useCallback thì lại tốn cost về memorization.
    Vậy có phải vs case này, thì Hook không làm tốt được như Class, và mình dùng Hook thì phải chấp nhận việc này hay sao ạ?

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

      hi Thành ơi, em có thể tạo một codesandbox.io rồi ví dụ trên đó cho a review giúp e được không? 🙂 Có thể em bị hiểu sai một ý nào đó ở đây 😉

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

    Em rất thích phần custom hooks ! Xong phần hooks cơ bản này có phần hooks nâng cao ko anh Hậu?

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

      Châu Minh Phúc à có Phúc ơi, xong callback này là tới mấy custom hook hay hay hehee 😉

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

    8:15 nó trả về cái mảng cũ. còn dữ liệu thì có thể thay đổi đúng k a nhỉ?

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

      hi Tuân ơi, dữ liệu nó cũng ko thay đổi luôn em nha hehe
      Đến khi nào dependencies thay đổi nó mới tạo ra cái mảng mới cho mình 😉

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

      @@EasyFrontend af ok. cam on a

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

    Nếu nó hạn chế số lần rerender và tính toán lại thì có lý do gì mà mình ko sử dụng ở toàn bộ không anh. Cái mà anh bảo virtual dom các thứ kp render lại dom nó đâu có đúng trong react native. Mong anh giải thích thêm tại sao mình ko nên dùng cho toàn bộ component. Khi có 1 tính năng tốt như vậy.

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

      hi Tùng, performance optimization có cái giá của nó, nếu mình apply không đúng nơi đúng chỗ nó thẩm chí làm chậm hơn việc không dùng. Ví dụ ở đây 2 cái hooks useCallback và useMemo nó sử dụng kĩ thuật memoization, không phải lúc nào mình cũng cần đụng tới kĩ thuật này.
      Ví dụ: tính toán add(a, b) --> bạn có nghĩ hàm này nên áp dụng memoization không?
      Rõ ràng là không, vì áp dụng vào thì việc bạn làm còn nhiều hơn 🙂
      Cho nên một câu nói rất hay từ bài blog bên dưới mà mình rất thích đó là: "Performance optimizations are not free. They ALWAYS come with a cost but do NOT always come with a benefit to offset that cost."
      Link tham khảo: kentcdodds.com/blog/usememo-and-usecallback
      Đừng apply những kĩ thuật optimization vô tội vạ, nó sẽ khiến mọi thứ rối hơn, tệ hơn, chứ ko tốt hơn nè 🙂 Nên hãy hiểu và apply đúng nơi đúng chỗ thôi nhé hihi

    • @KhanhDuy-dv2ub
      @KhanhDuy-dv2ub 4 года назад

      @@EasyFrontend là do mỗi lần mình dùng memoization nó sẽ tốn thêm cache để lưu dữ liệu sau mỗi lần pk a ?

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

      Khanh Duy à nó vừa lưu vừa tốn thêm xử lý nữa đó Duy, nên những tác vụ đơn giản + memoization vào chỉ thêm cồng kềnh chứ hk nhanh hơn nè 🙂

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

    1 bài hay.

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

      Vi vu duc hehe cảm ơn em nhiều nhé Đức 😉

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

    👍

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

    easy front end

  • @DungPhan-xy7pe
    @DungPhan-xy7pe 3 года назад

    🥰🥰🥰🥰

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

    hihi

  • @KhanhDuy-dv2ub
    @KhanhDuy-dv2ub 4 года назад

    anh ơi cho em hỏi em bị đang bị cái bug re-rendering như sau .
    Trong useEffect em chạy một cái map để duyệt item thỏa mãn điều kiện, với mỗi item thỏa mãn em lại đẩy vào chuỗi B setB((B) => [...B, item]) . Chạy hết map em lại setA (B) và dependencies của em là chuỗi A, vậy là mỗi lần chuỗi B thay đổi dẫn đến A cũng thay đổi luôn nên re-rendering vô tận.
    nếu em để denpendencies rỗng thì nó render đúng 1 lần nhưng UI nhận data của A lại không hiện ra liền, mà lần render thứ 2 nó mới xuất hiện. Mong anh giải đáp thắc mắc giúp em ạ :3

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

      hi Duy ơi, để cho chắc, em tạo một cái code snippet cho cái code của component đó, rồi send anh cái link anh xem được không? 🙂

    • @KhanhDuy-dv2ub
      @KhanhDuy-dv2ub 4 года назад

      @@EasyFrontend codepen.io/emonno13/pen/dyYpQvd

    • @KhanhDuy-dv2ub
      @KhanhDuy-dv2ub 4 года назад

      @@EasyFrontend Dạ anh ơi review giúp em ạ .

    • @KhanhDuy-dv2ub
      @KhanhDuy-dv2ub 4 года назад

      @@EasyFrontend À em fix dc rồi ^^ em ko setState trong map nữa mà em dùng biến tạm để lưu nó và trả về empty dependencies

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

      Khanh Duy lol hay quá, a còn chưa review nữa =)), vậy là bữa sau bí em cứ hỏi anh, e trình bày xong là em sẽ tự trả lời được heheee

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

    Hi anh em có gặp một problem ntn a.

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

      export default function () {
      const [state] = useContext(RandomNumberContext);
      const num = useMemo(() => state.num, [state.num]);
      console.log('Always rerender')
      return (
      {num};
      )
      }
      export default function () {
      const [state] = useContext(RandomNumberContext);
      const { num } = state;
      return useMemo(() => {
      console.log('Only rerender when change number')
      return (
      {num};
      )
      }, [num])
      }

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

      Em có một button khi click reset về 0 thì C2 không rerender. Còn C1 thì vẫn renreder mặc dù state sau những lần click luôn bằng 0 có cách nào để fix không anh nhỉ?

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

      ọc sorry em Tuyền, anh bị miss tin nhắn của em. Em xử lý được vấn đề chưa Tuyền 🙂Nếu vẫn chưa thì ping anh bên Facebook chat nha Tuyền 🙂

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

      @@EasyFrontend Thanks anh ạ. Thấy có mấy bài viết họ sử lí theo C2 nên em loại C1 anh ạ.

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

    like cái fix bug song xem =))

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

    xong 2 thằng này apply facebook được chưa a 😂😂😂😂😂😂

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

      I'm VuCms 🤣 🤣🤣🤣🤣 Facebook Google gì chơi tới đi em 😂🤣😂

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

      @@EasyFrontend z là hết hooks rồi à a

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

      @@ImVuCms à chưa Vũ ơi, vẫn còn hehe này mới phần cơ bản thôi mà. Mình làm series redux xong, tiếp tục các hooks nâng cao khà khà 😉