Global State with Context + useReducer | Trạng thái toàn cục

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

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

  • @F8VNOfficial
    @F8VNOfficial  2 года назад +33

    Các bạn có thể tách files constants.js, actions.js, reducer.js sang một thư mục mới tên là state cho nó clear nhé. Thư mục store chứa context và provider là ok rồi nè 😍😍

  • @minhhoang576
    @minhhoang576 2 года назад +2

    bài này mình đã phải luyện tập sử dụng useRducer và useConext rất nhiều thì mới hiểu được hết video này, cảm ơn anh Sơn

  • @funnycatmeowmeow
    @funnycatmeowmeow Год назад +1

    Cảm ơn anh Sơn nhiều nhé. Đi làm cũng 1 thời gian rồi nay mới đụng Nextjs nhờ video của anh mà solve được 1 task. Hehe

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

    Học kĩ đến hết bài này lúc nhảy sang đọc redux thông não nhanh thật :D Cảm ơn a Sơn nhiều ạ!

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

    F8 giảng hay hơn học ở trung tâm nữa, chúc F8 luôn gặp may mắn

  • @HungNguyen-pk2hv
    @HungNguyen-pk2hv 2 года назад

    Giọng với ngữ điệu hướng dẫn hay nhất mình từng nghe.

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

    e cảm ơn "thầy" Sơn rất nhiều. Nếu ko có những videos này chắc còn lâu e mới hiểu được cách React hoạt động < 3. Chúc thầy Sơn nhiều sức khỏe và thành công trong sự nghiệp.

  • @lenhac9040
    @lenhac9040 2 года назад +3

    Bài này cũng dùng context với reducer thôi, cái khó nhất là cấu trúc file, lần đầu chưa quen thấy nó rối quá😅

  • @DũngVõHoàng-t8h
    @DũngVõHoàng-t8h Год назад

    cảm ơn anh, e tính xem chùa mà thấy hay quá phải bình luận

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

    Cám ơn anh Sơn, 1 video quá tuyệt vời ạ.
    e xin bổ xung 1 chút xiu ạ.e nghĩ những video mà có nhiều file như này thì anh có thể tổng hợp lại thành 1 file rồi giải thích theo luồng từ đầu đến cuối thì sẽ dễ hiểu hơn ạ.
    em cám ơn anh.

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

    9:45 "Viết code nãy giờ không lỗi gì" 😃 Wow

  • @VODIEN_SOUNDS
    @VODIEN_SOUNDS 2 года назад +2

    Lúc trước em chỉ hay sử dụng useState + useContext để tạo global state. Vậy mình có thể sử dụng đồng thời useState (với các state đơn giản) và useReducer làm global state và truyền nó đi trong prop value của Provider ko ạ ?

    • @lordsaurondevoffical363
      @lordsaurondevoffical363 Год назад +2

      sao không dùng redux bạn! redux dễ dùng dễ quản ký các state!
      context với reducer thì các provider nó chồng chéo nhau, khó quản lý!
      nếu lỡ tay không bảo lưu state, mà thay thế trực tiếp coi như xong, mất cả ngày chả tim ra đâu.
      bài này của anh sơn học kỹ sang redux dễ học lắm

  • @hoclaptrinhblockchaincungtin
    @hoclaptrinhblockchaincungtin 2 года назад +2

    A ơi hôm nào a làm clip về feature folder structure nha anh ( ͡° ͜ʖ ͡°)

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

    mn cho e hỏi là trong file index.js trong thư mục store, s được export default StoreProvider và StoreContext v ạ, e c.ơn

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

    Hay quá nhưng mà hơi ngộp :3, xem thì hiểu nhưng thực hành chưa biết sao =))))

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

    anh có thể thêm 1 video về phần context + useReducer sử dụng typescript ko ạ? Em đang chưa tích hợp được vào. Thanks

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

    a ơi, cú pháp khi anh nhấp chuột vào rồi a nhả nội dung copy
    ra nơi khác là gì anh?

  • @hongson4107
    @hongson4107 8 месяцев назад

    đoạn này nó không render App ra màng hình anh là lỗi đúng k ạ . Ai giúp em với ạ

  • @NamangMinh1
    @NamangMinh1 2 года назад +2

    em lại gộp chung anh ạ

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

    Ra rồi, cảm ơn anh

  • @TamTran-xm3un
    @TamTran-xm3un 11 месяцев назад

    9:28 Tại sao lúc import StoreProvider lại chỉ from ./store mà không phải là ./store/index.js ạ

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

      nó tự nhận nếu trong thư mục có chứa file index

  • @Huyhoang-rc1su
    @Huyhoang-rc1su 2 года назад

    Mọi người ơi, cho mình hởi hàm logger đang return 1 hàm với 2 tham số là prevState và action mà đầu vào hàm này là 1 reducer thì cho mình hỏi sao nó hiểu được prevState và action lúc return hàm nhỉ ?

    • @DuyNguyen-xq3rp
      @DuyNguyen-xq3rp Год назад

      thật ra bạn hãy tưởng tượng logger() là 1 dạng reducer ấy bạn, nó trả về 1 fn thì reducer cũng chính là 1 fn có 2 para là state và action và nó trả về state mới, tóm lại nó chính là reducer không khác gì cả. Mình ngồi nghiệm 1 hồi mới ra. Mục đích mình cũng ko rõ để làm gì, nhưng có vẻ code clean hơn

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

    anh ơi cho e hỏi useContext nó truyền dữ liệu từ cha sang con chứ không thể từ con ngược lại cha hay đồng cấp (anh / chị) đúng không ạ ?

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

      Đúng rồi em ơi. Nhưng nếu em cần truyền từ con lên cha thì em có thể dùng callback đc truyền từ cha xuống, component con gọi callback và đẩy data lên cha. Hoặc em mang data đó lưu lên global state để truyền từ trên xuống nhé.

  • @NhanHoang-sh8tg
    @NhanHoang-sh8tg 2 года назад

    anh ơi cho em hỏi khúc const [state, dispatch] = useStore() có cách nào chỉ lấy state hoặc dispatch thôi k ạ? hay mình phải sửa lúc pass value ở provider

    • @F8VNOfficial
      @F8VNOfficial  2 года назад +2

      Mình cần pass cả 2 xuống để dùng em. Nếu lấy nguyên state thì em viết là [state] thôi, khi nào cần dispatch thì mới lấy thêm

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

    mình có thắc mắc là khi action nhiều thì swithcase cũng nhiều nên vậy có làm chậm ứng dụng không nhỉ, tại thấy mỗi khi có action lại nhét trung vao 1 cai global

    • @thanhduynguyen6253
      @thanhduynguyen6253 9 месяцев назад

      lúc đó scale của ứng dụng cx to ra rồi, thì sau đó sẽ chia module cho mỗi component, mình nghĩ sau đó thì mỗi component sẽ có riêng file action, component nào thì inport index cho component đó thôi. Hiện tại đang dùng chỉ ở index, nhưng sau chắc chắn sẽ có thêm nhiều module khác, index cũng chỉ là nơi để import các module kia vào để dùng thôi b

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

    27:28 E test thử context của react thì thấy nó cũng chỉ re-render nếu component nào import useContext của Provider đó thôi mà a nhỉ. Ko biết e hiểu sai ở đâu k 😅 Ví dụ như e có header cũng là children của Provider đó nhưng ko có import useContext của nó thì ko bị re-render, e có console ra thử r :v

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

      thì bạn nói đúng ý của anh Sơn mà

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

      @@sonminhpham8118 A Sơn đang nói tới redux ấy b, còn mình test thì thấy react và redux đều như nhau á

    • @ThuongNguyen-km7vg
      @ThuongNguyen-km7vg 2 года назад

      mình cùng câu hỏi luôn

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

      @@ThuongNguyen-km7vg Mình thấy chắc a Sơn nhầm á b, chứ re-render nguyên cái app thì chả khác nào useState 😂

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

      a sơn nói đúng mà bạn , bản chất của thằng Context sử dụng useState hoặc useReducer để làm dữ liệu trung tâm , nếu dữ liệu thay đổi thì tất nhiên tất cả các component được gói trong Context Global Component sẽ bị re-render mà

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

    Hóng a ra redux từng ngày

  • @KhanhNguyen-hl5ot
    @KhanhNguyen-hl5ot 2 года назад

    perfect quá a ơi

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

    a ơi, dùng HOC React.memo thì có ngăn chặn được re-render k cần thiết của useContext+useReducer k ạ?

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

      được nha

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

    Quá hay

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

    Lúc thực chiến useContext mới hiểu tại sao phải chia nhỏ và contruct file như thế này =))

    • @F8VNOfficial
      @F8VNOfficial  Год назад +1

      Thực tế thì cái gì cũng to và phức tạp hơn lúc học 🤣

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

    Hay đó anh

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

    Hay anh ơi❤

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

    Cảm ơn anh Sơn, bài này hay quá ạ (´▽`ʃ♡ƪ)

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

    Thanks em.
    Em có để thông tin hợp tác hoặc training ở đâu ko, anh cần liên hệ để trao đổi.

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

      Anh contact giúp em qua contact@fullstack.edu.vn nhé. Cảm ơn anh

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

    làm sao để xin full code ạ

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

    Global State có bị reset default khi f5 trang ko a?

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

    a Sơn dùng font chữ gì đẹp thế nhở🤔

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

      Macbook font mặc định nó thế em ơi. Anh thấy em dùng font SF mono đẹp đó em ơi, em thử cài đi

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

    anh để em tách ra

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

    lúc dùng dao mổ trâu mổ gà này dùng bom nguyên tử làm sạch lông gà

  • @ThienNguyen-ec7le
    @ThienNguyen-ec7le 2 года назад

    anh em mới học giống mình code nhớ lưu lại nhé không là export import cứ bị lỗi là rối không biết ở đâu luôn á kkk

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

      em cũng mới học, đến bài này hơi nản, kiểu file code nhiều linh tinh cũng import export loạn lên

    • @F8VNOfficial
      @F8VNOfficial  2 года назад +3

      @@duong2810 cố gắng lên em, vô dự án thật nó còn kinh khủng hơn em nghĩ đấy. Học thôi mà cũng nản thì làm cái gì cũng nản thôi.

    • @ThienNguyen-ec7le
      @ThienNguyen-ec7le 2 года назад +1

      @@duong2810 đúng rồi sao lại nản bạn ơi, cứ bình tĩnh á từ từ bạn sẽ hiểu thôi à, cố lên nào.

    • @ThienNguyen-ec7le
      @ThienNguyen-ec7le 2 года назад +3

      @@duong2810 Cách học của mình á là cứ xem rồi code theo anh Sơn đến khi nào hiểu thì thôi 2 lần kh hiểu thì 3 4 lần nhưng mà hiểu xong rồi mình sẽ tự làm ra những ví dụ khác nữa để hiểu rõ hơn nữa á bạn

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

      @@ThienNguyen-ec7le mình cũng vậy, có những video xem 7-8 lần mới ngâm được

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

    chào ae f8

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

    Please mention the language so that people this is not English.

    • @DuyNguyen-xq3rp
      @DuyNguyen-xq3rp Год назад +1

      this channel is for Vietnamese sir

    • @vantai0703
      @vantai0703 6 месяцев назад

      RUclips has subtitles 😢

  • @minhthan-cv5ox
    @minhthan-cv5ox Месяц назад

    rối vãi chưởng

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

    Good job