Hướng dẫn React + Redux Toolkit - Phần 1

Поділитися
Вставка
  • Опубліковано 15 вер 2024

КОМЕНТАРІ • 79

  • @DanielTruongDev
    @DanielTruongDev  2 роки тому +6

    //App.css
    *,
    *::before,
    *::after {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    }
    .App{
    display: flex;
    flex-direction: column;
    }
    body, .App {
    min-height: 100vh;
    margin: 0;
    text-align: left;
    scroll-behavior: smooth;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    font-size: 1.15rem;
    font-family: "Noto Sans", sans-serif;
    background-color: #0c0c0c;
    color:white;
    }
    .loading{
    color:white;
    text-align: center;
    }
    .error {
    color:rgb(255, 56, 56);
    text-align: center;
    }
    //edit.css
    .edit-container {
    display: flex;
    align-items: center;
    flex-direction: column;
    background-color: #0c0c0c;
    height: 100vh;
    }
    .close {
    background-color: transparent;
    border: none;
    align-self: end;
    margin: 1rem 1.15rem 0 0;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    color: rgb(41, 128, 243);
    }
    .input-container {
    width: 80%;
    font-size: 1rem;
    margin-top: 1.25rem;
    display: flex;
    flex-direction: column;
    }
    .input-container > input {
    margin: 1rem 0 1rem 0;
    padding: 0.25rem 0.5rem 0.25rem 0.5rem;
    background-color: #505050;
    border: none;
    border-radius: 4px;
    color: white;
    }
    .input-container > textarea{
    padding: 0.25rem 0.5rem 4rem 0.5rem;
    height: 100px;
    background-color: #505050;
    border: none;
    border-radius: 4px;
    color: white;
    margin: 1rem 0 1rem 0;
    text-align: start;
    font-family: "Noto Sans", sans-serif;
    }
    .input-image-container {
    flex-wrap: wrap;
    }
    label:nth-child(7) {
    margin-bottom: 1rem;
    }
    .input-image {
    cursor: pointer;
    border-radius: 14px;
    background-color: white;
    padding: 0.5rem;
    width: 90px;
    margin-right: 1rem;
    margin-bottom: 2rem;
    height: 130px;
    object-fit: cover;
    overflow: hidden;
    }
    .theme-container {
    display: flex;
    align-items:center;
    margin-bottom: 3rem;
    }
    .theme-container > label {
    margin-right: 5rem;
    }
    //header.css
    header {
    height: 280px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    }
    .info-edit{
    cursor: pointer;
    align-self: flex-end;
    border:2px solid white;
    margin: 1rem 1.15rem 0 0;
    padding: 0.45rem;
    border-radius: 16px;
    font-weight: 700;
    font-size: 1rem;
    }

    .info-container {
    display: flex;
    flex-direction: column;
    text-align: start;
    padding-left: 2rem;
    color: white;
    }
    .info-username {
    width: 50%;
    font-weight: 700;
    margin-bottom: 0.5rem;
    }
    .info-age, .info-about {
    font-size:0.85rem;
    margin-bottom: 0.5rem;
    }
    .info-ava {
    width: 85px;
    height: 130px;
    object-fit: cover;
    overflow: hidden;
    }

  • @Eatkakamy
    @Eatkakamy 2 роки тому +2

    Cảm ơn anh đã giới thiệu redux , em đã phần nào hiểu được cách dùng rồi ...tuyệt vời quá á ứng dụng dễ thương xem lại 5 lần để hiểu hơn

  • @leminhcanh3476
    @leminhcanh3476 Рік тому +1

    cảm ơn em, em có kỹ năng giảng dạy tuyệt vời! chúc em năm mới khỏe mạnh thành công!

  • @locuc7966
    @locuc7966 Рік тому

    Lớn hơn ông 1 tuổi nhưng công nhận ông giỏi quá. Cảm ơn ông vì đã chia sẽ nhưng dự án cơ bản rất hay như vậy!

  • @chithanhbui5032
    @chithanhbui5032 9 місяців тому +1

    anh zai này dậy dễ hiểu thật :v

  • @yashainu626
    @yashainu626 2 роки тому

    em thường coi video của a, rất dễ hiểu ạ, mong a ra nhiều video về reactJS hơn :3

  • @tuannguyenthanh1063
    @tuannguyenthanh1063 2 роки тому +1

    vừa code vừa giải thích hay quá bạn ơi, niceee

  • @unclefivefootball
    @unclefivefootball 2 роки тому

    Cảm ơn em rất nhiều về clip này, đúng cái a đang cần, mong e sẽ làm thật nhiều project về ReactJs, rất cảm ơn e

  • @thithanhhango2652
    @thithanhhango2652 4 місяці тому

    Hay qua, thanks b

  • @namhoai452
    @namhoai452 2 роки тому

    rất hay, mong b làm thêm hướng dẫn về RTK query trong redux

  • @ucvinhhoang2927
    @ucvinhhoang2927 2 роки тому

    siêu dễ hiểu luôn anh, I love you 3000.

  • @ngthuan7497
    @ngthuan7497 2 роки тому +1

    Cảm ơn bạn, rất dễ hiểu.

  • @phuvo4658
    @phuvo4658 2 роки тому

    Cảm ơn bạn nhiều. Bạn làm video rất hay và dễ hiểu

  • @khiempham4951
    @khiempham4951 2 роки тому

    Hay quá đang tìm redux. Cảm ơn bạn

  • @haivu-fy2vu
    @haivu-fy2vu 6 місяців тому

    nếu tạo giá trị ban đầu trong initialState với giá trị là 1 mảng rỗng [] thì sao khi mình console.log giá trị đó ra nó lại không ra giá trị là mảng rỗng nhỉ

  • @jasonpham8692
    @jasonpham8692 2 роки тому

    +1 hữu ích mong bạn ra thêm nhiều video nữa nhé

  • @Dkid009
    @Dkid009 6 місяців тому

    anh ơi bây giờ học phần 1 này thì oke k ạ
    Em sợ nó update lên nhiều cái khác với video này ạ

  • @phiphan8360
    @phiphan8360 2 роки тому

    Video hay quá em.

  • @dungtrinhquang1636
    @dungtrinhquang1636 Рік тому

    Hay quá❤❤❤

  • @phamcongtoan1399
    @phamcongtoan1399 2 роки тому

    Để e cày 2 video trc của anh mới hiểu đc video này ạ:))))

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      🤣 video này có khúc Redux là mới th, còn khúc React e biết cơ bản th cũng có thể theo video được rùi á, tại Redux bắt đầu từ phút 50 lận

  • @studdev5065
    @studdev5065 2 роки тому

    rất ủng hộ bạn, mong bạn ra nhiều video hơn nữa nhé!!!

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      cảm ơn b nhé ^^

    • @studdev5065
      @studdev5065 2 роки тому

      @@DanielTruongDev bạn dùng mạng xã hội gì ko? Mh có thể ib cho bạn được ko

  • @Bulaje
    @Bulaje 2 роки тому

    quá hay luon.. mình cảm mơn bạn

  • @21.obuiphuonglinh78
    @21.obuiphuonglinh78 2 роки тому

    fan anh 🤓

  • @some1here0
    @some1here0 2 роки тому

    video rất hay ạ

  • @2nlatui
    @2nlatui Рік тому

    Đoạn 1:00:44 phần export userSlice.actions, cái actions là mặc định khi xuất các reducers mình sẽ kèm theo phải k b

  • @ngocphuchuynh2758
    @ngocphuchuynh2758 2 роки тому

    hay lắm anh, dể hiểu. mong anh ra video mới .

  • @chinhphan42
    @chinhphan42 2 роки тому +1

    Đa tạ các hạ rất nhiều.🥰

  • @truonghoanglong541
    @truonghoanglong541 2 роки тому

    hay quá

  • @studywiththuan4404
    @studywiththuan4404 4 місяці тому

    theme anh dùng là gì vậy ạ

  • @kennho2887
    @kennho2887 6 місяців тому

    ai biết thuộc tính name: user bên Slice dùng cho mục đích gì ko ạ :

  • @viewvue3744
    @viewvue3744 Рік тому

    bạn có thể làm thêm video về redux saga dc ko ạ , hoặc project sử dụng nó đi ạ

    • @fukemy123
      @fukemy123 11 місяців тому

      redux saga bản chất nó chỉ nâng cao hơn thunk 1 tí, giúp cho code clean hơn

  • @tranvandung5361
    @tranvandung5361 2 роки тому

    Bằng tuổi giỏi quá bạn ơi

  • @nguyenquang-ui8qz
    @nguyenquang-ui8qz 2 роки тому

    Ban gioi qua

  • @duoctran9069
    @duoctran9069 Рік тому

    em coi của anh 3 lần rồi ko hiểu. sao khi làm dự án dùng context giờ xem lại hiểu :))) dị có chậm tiêu ko anh

  • @nhquyen_
    @nhquyen_ 2 роки тому

    Bằng tuổi mà bạn giỏi quá

  • @datdang9416
    @datdang9416 2 роки тому

    b có đẩy lên git k cho mình xin vs ạ

  • @hoangphuc5851
    @hoangphuc5851 2 роки тому

    hay qua' a oi

  • @DanielTruongDev
    @DanielTruongDev  2 роки тому +4

    Link avatar trong clip cho bạn nào muốn xài nhe:
    preview.redd.it/rrz3hmsxcll71.png?width=640&crop=smart&auto=webp&s=87cc5ed38d8f088ef9fffef7a4c5756b64309d6a
    preview.redd.it/fc9k38jwfwv51.png?auto=webp&s=9ce3d4c488091bb21969fd0fad7a6d89e4bfc50d
    preview.redd.it/se39g98mljw51.png?auto=webp&s=758dfe2b0a2df439b06b68533e763f413d58b46c
    preview.redd.it/5es1lne1du261.png?width=640&crop=smart&auto=webp&s=e6eb0ee5710710000e4fbace119112de63324a38
    i.redd.it/7ipyf6pvqac61.png
    i.redd.it/ksmb0m02ppy51.png
    i.redd.it/mozfkrjpoa261.png
    preview.redd.it/cpwkbke13vv51.png?auto=webp&s=9158e49b35ad2581d840efd2a013a9ead06abbc7
    preview.redd.it/26s9eejm8vz51.png?auto=webp&s=e38d32ee0ffa0666fade2abd62ed59037c119990

  • @pmusic708
    @pmusic708 Рік тому

    20 tuổi mà đỉnh thế :v

  • @bachkhoait4.052
    @bachkhoait4.052 2 роки тому

    em cảm ơn anh nhìu em ở lào cao

  • @namhoai452
    @namhoai452 2 роки тому

    s mình thấy trong source cả backend vs frontend có rất nhiều phần code khác mà cả 2 vieo đều k thấy nhỉ

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      do mấy vid này mình làm hồi mới ra kênh YT này nên chưa được gọn gàng lắm ấy 🥲 b thông cảm nhé

    • @LocNguyen-zq1de
      @LocNguyen-zq1de Рік тому

      @@DanielTruongDev anh oi souce cua 2 video nay tren github la gi v anh

  • @danhnguyenhuu910
    @danhnguyenhuu910 2 роки тому

    cho em xin đường link ảnh png của anh với

  • @vinholiver6801
    @vinholiver6801 2 роки тому

    Chào mọi người, cho mình hỏi lỗi export 'userReducer' (imported as 'userReducer') was not found in './userSlice' (possible exports: default, update, userSlice) ạ

    • @locuc7966
      @locuc7966 Рік тому

      ở file store.js chổ đường dẫn import {userReducer} from './userSlice' ông thử bỏ dấu {} hoặc thêm dấu {} bọc userReducer nha

  • @babayaga3303
    @babayaga3303 2 роки тому

    Sao k lưu localstorage hoặc đơn giản nhất là dùng persist của Redux để load trang không bị mất bài post vậy bạn. Đâu cần phải có database để lưu đâu nhỉ.

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому +1

      project hoàn thiện thì phải xài database chứ b, còn này project cơ bản th thì mình thấy k cần thiết làm cái tránh mất bài post còn b muốn xài persist thì bạn check cái video JWT của mình có xài ấy

    • @babayaga3303
      @babayaga3303 2 роки тому

      @@DanielTruongDev ok bạn mình hiểu rồi.

  • @hungk1610
    @hungk1610 2 роки тому

    👍👍👍👍❤️❤️❤️

  • @duyngo6672
    @duyngo6672 2 роки тому

    hi, mình là Duy nhưng mình hông có giỏi như Duy (Daniel)😄

  • @tanluongminh7562
    @tanluongminh7562 2 роки тому

    Cái này phải biết trước HTML,CSS,JS mới học được hả a ?

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      ừa đúng r em, phải biết sơ về HTML,CSS,JS thì mới bắt đầu với React được :D

  • @chinhlam212
    @chinhlam212 Рік тому

    Anh ơi, cho em hỏi ngu một xí, nhưng mà anh có cài thêm extension gì để nó tự import vào không á. Tại của em nó không tự import :((

    • @thanhongtran6402
      @thanhongtran6402 Рік тому +1

      mình dùng "auto import " gần 3m lượt tải ấy, bạn thử dùng xem

    • @DanielTruongDev
      @DanielTruongDev  Рік тому +1

      bth import thì nó auto complete cho anh th, anh có cài sẵn cái extension ES7+ React/Redux/React-Native á

    • @chinhlamien1765
      @chinhlamien1765 Рік тому +1

      ​@@thanhongtran6402 Cảm ơn bạn để mình thử.

    • @chinhlamien1765
      @chinhlamien1765 Рік тому

      ​@@DanielTruongDev Dạ để em cài thử, cảm ơn anh nhiều ạ

  • @TinhNguyen-ii9zy
    @TinhNguyen-ii9zy 2 роки тому

    Hay quá em ơi. Em có mở khóa dạy online gì ko.thanks em

  • @02-chaugiabao45
    @02-chaugiabao45 2 роки тому +1

    link của mấy tấm avatar lấy ở đâu thế a

  • @hienismymiddlename
    @hienismymiddlename 8 місяців тому

    này quay đâu z anh zai

  • @tuannguyen5904
    @tuannguyen5904 2 роки тому

    Đúng tuổi trẻ tài cao. E học trường nào vậy?

  • @trungsine6591
    @trungsine6591 Рік тому

    Ai có link avaurl ko cho mình xin với ạ

    • @othanhphuoc5033
      @othanhphuoc5033 Рік тому

      dùng cái này được dev
      const avaUrl = [
      'tse3.mm.bing.net/th?id=OIP.v3WfYag0YBfN5dAlG3pA6wHaHa&pid=Api&P=0&h=180',
      'tse1.mm.bing.net/th?id=OIP.H33ToM8hwdW580U1Tc4H3gHaHY&pid=Api&P=0&h=180',
      'tse2.mm.bing.net/th?id=OIP.GXS4B2kclfx_C6XmtUxRhAHaHa&pid=Api&P=0&h=180',
      'tse1.mm.bing.net/th?id=OIP.N2DZ_EX7cgmR24zUtRmkNwHaHa&pid=Api&P=0&h=180',
      'tse1.mm.bing.net/th?id=OIP.FdVnqJO5yn3uQoG6wOSTGwHaHa&pid=Api&P=0&h=180',
      'tse1.mm.bing.net/th?id=OIP.gUPnoSwoMjbUQ6MVDY_fIAAAAA&pid=Api&P=0&h=180',
      'tse4.mm.bing.net/th?id=OIP.6RDgHe9pPxbddowFEjvYwAAAAA&pid=Api&P=0&h=180'
      ];

  • @ken2ker495
    @ken2ker495 2 місяці тому

    em cũng làm theo a nhưng sao nó vẫn lỗi ạ , ở backend e cho nó listen on port 3001 , config proxy em cũng cho nó là port 3001 , chaạy frontend thì trên cổng 5137 , vì vậy đến lúc gọi hàm updateUser vô khúc try thì nó ghi là error apiRequest.js:9
    POST localhost:5173/v1/update 404 (Not Found) . Em xin hướng giải quyết với ạ

  • @DuyAnh-xz8dm
    @DuyAnh-xz8dm 2 роки тому

    Cảm ơn bạn , video dễ hiểu lắm .