61. Axios: Gọi API từ phía Front-end sao cho Clean Code | NodeJS + MongoDB | TrungQuanDev

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

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

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

    ngồi chill chill nghe những kinh nghiệm làm việc của anh chill thật 😆

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

      Để xong bộ này rồi anh làm vlog chia sẻ kinh nghiệm kiểu này nhiều hơn :))

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

    Đợi vid a từng ngày hay quá a ơi

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

      Tối nay sẽ lên tiếp cái về xử lý CORS rất hay nhé em

  • @ntramu4186
    @ntramu4186 7 หลายเดือนก่อน

    Ơ thiếu vid 60 trong playlist a ơi :((

    • @trungquandev
      @trungquandev  7 หลายเดือนก่อน

      Đầu mỗi video anh đều nhắc về playlist mà, video 60 thì nó sẽ bắt đầu cái Playlist tích hợp em nhé, hoặc đơn giản em mở playlist Full Mern Stack của anh ra xem cho đầy đủ liền 1 mạch nha.

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

    Anh có hướng dẫn làm hiệu ứng loading khi gọi api không á anh. Em sử dụng useState là [isLoading, setLoading] thì có vấn đề component bị re-render 2, 3 lần.

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

      Cái loading thì em nên làm riêng 1 cái component loading hoặc thằng MUI có support sẵn đó, xong rồi mình kiểm tra + xử lý ở lúc gọi api khi bắt đầu gọi thì chạy thanh loading bar chẳng hạn, xong xuôi thì ẩn thanh đó đi, cách xử lý tốt nhất là dùng ở Interceptor như trong video anh có nhắc đến nha. Chứ em không nhất thiết phải làm cái isLoading ở mọi component thì code khổ lắm :)) thi thoảng trường hợp đặc biệt mới cần làm riêng thôi.
      - Còn vụ re-render của React thì không vấn đề đâu em, cơ chế của nó mà, đừng nghĩ nhiều rồi bị over thinking giai đoạn đầu, em check group Discord trong phần tài liệu học tập anh có chia sẻ rất rõ về vấn đề re-render này rồi đó.

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

    /cái interceptors nhiệm vụ của nó giống với middleware đúng không anh

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

      Em có thể hiểu như vậy cũng được nha, nhưng hiểu theo cách trừu tượng hơn xíu, cũng như anh nói trong video ấy, Interceptor nó như là một cái căn phòng nơi mà mình dùng để đánh chặn giữa request hoặc response, và trong cái căn phòng đó mình có thể tạo ra nhiều thứ rộng hơn như animation loading, disable các elements trong lúc gọi api, custom errors hay là xử lý các thứ như refresh tokens...vv

  • @ZeninPham
    @ZeninPham 7 หลายเดือนก่อน

    20:00 Em làm y như anh mà gặp một cái lỗi hơi dị là cái board state được set khi console.log ra nó là dạng 'board: {..}' chứ không phải chỉ là 1 json object '{...}'. Nên là khi truyền vào em phải truyền là board.board thì nó mới đổ dữ liệu bên trong vào được, truyền board không thì nó không được không hiểu sao lại thế 😂😂

    • @trungquandev
      @trungquandev  7 หลายเดือนก่อน

      Chắc em tổ chức sai cấu trúc hoặc trả về dư thêm key board trong board, bị nested data thôi mà. À anh bảo, nick youtube này của em hình như từng bị youtube đánh bản quyền hay gì đúng không, a cứ thấy mọi comment của em đều nằm trong phần "Bị giữ lại để xem xét"

    • @ZeninPham
      @ZeninPham 7 หลายเดือนก่อน

      @@trungquandev Hôm trước em gặp lại lỗi này thì phát hiện ra chỗ .json() em viết là .json({...}) nên bị vậy. Em không nhớ cmt này ở video nào để vào báo anh là em fix được rồi 😅 Vụ cmt "Bị giữ lại để xem xét" thì em không rõ anh. Nick youtube này em mới lập mà chưa đăng gì 😄 Nhân tiện em cảm ơn anh vì khóa học rất nhiều kiến thức và anh luộn tận tình chỉ dạy từng chi tiết ạ ❤ Em có 1 góp ý nhỏ theo ý kiến cá nhân là nếu trước khi thao tác code mà anh nói tổng quan hướng tư duy xử lý cần làm gì thì sẽ dễ hình dung và hiểu rõ hơn ạ. Nhất là với mấy bạn mới học trái ngành như em kk 😁

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

    🍀Xem xong video này rồi có cảm nghĩ gì thì bạn hãy comment bên dưới cho mình biết với nhé 😄
    🔔Like video cũng như Đăng Ký Kênh ủng hộ mình & Join cộng đồng Discord hoặc Facebook rất văn minh lịch sự tại đây nha:
    🔗Discord: Kiến Thức Lập Trình: discord.gg/ycSbhP6gDu
    🔗Fanpage: Trung Quân DEV: facebook.com/trungquandev
    🔗Group: Cộng đồng Lập Trình Web • Front-end & Back-end Việt Nam: facebook.com/groups/laptrinhwebvietnam

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

      discord link bị lỗi r a ơi a cho e xin lại link mới với ạ

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

      @@tuananhinh6509 ơ anh test vẫn vào đc mà, em bị lỗi gì đó, chụp màn hình xong gửi qua page fb giúp anh để anh xem được không?

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

      @@trungquandev à sr a nick e bị lỗi , h e vào lại được r , cảm ơn a

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

      @@tuananhinh6509 không có gì em, học tốt nha :)))

  • @ViệtAnhNguyễnĐình-n3p
    @ViệtAnhNguyễnĐình-n3p 10 หลายเดือนก่อน +1

    em có sử dụng useParams của react-router-dom để lấy id của url truyền vào useEffect ấy ạ, nhưng em bị dính trường hợp component render 2 lần ( lần đầu board?.title = null còn lần 2 nó mới ăn ) nhưng không hiển thị được title ngoài giao diện. em đã tắt React.StrictMode rồi thì k biết có phải do cái useParams hay thứ gì khác khiến em gặp vấn đề không ạ?

    • @trungquandev
      @trungquandev  10 หลายเดือนก่อน

      Với mô tả của em thì anh nghĩ em chưa nắm được lifecycle của React, em nên dành chút thời gian xem lại. Và em cũng không cần phải đếm số lần render như vậy đâu, ban đầu state nó null, về sau khi gọi api nó có dữ liệu update lại State thì lúc đó nó render lại giao diện là đúng rồi. Hiểu rõ về vấn đề state, props thay đổi thì cơ chế của react là re-render làm mới lại giao diện em nhé.
      - Còn về cốt lõi cách giải quyết vấn đề ở đây thì từ khóa anh sẽ đưa cho em là "Loading". Em có thể nghiên cứu luôn hoặc cứ học bộ này đi tới các video sau anh có dạy luôn r đó.

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

    Khi nào anh mở lớp làm clip thông báo nha anh

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

      Nhất trí nha :)) Sẽ có clip

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