Skip to content

ductandev/React_Functional_training_bc43

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buổi 1: UseStateDemo (có sẵn của react)

image code


Buổi 2: UseEffect - UseCallBack - UseMemo - UseRef (có sẵn của react)

--UseEffect image image code


--UseCallBack
image image image

--UseMemo
image image

--UseRef
image image code

Buổi 3: React thư viện - useSelector - useDispatch (thư viện redux) && Các hook routing thông dụng

Cài đặt thư viện redux toolkit

$ npm install @reduxjs/toolkit
$ npm install react-redux 

import { useDispatch, useSelector } from 'react-redux'

--useSelector && useDispatch (của thư viện redux)

- 2 Thư viện hook "useSelector" và "useDispatch" không phải của react core cung cấp, mà 2 thư viện này thuộc thư viện react-redux cung cấp cho phép ta truy cập đến reducer một cách dễ dàng và ngắn gọn hơn.

image image

--Các hook routing thông dụng
image
image
image
image
code

image
image
image
code

image
image
image
code

Buổi 4: Formik (lấy dữ liệu từ form) - Yup (thư viện validation) - Call API (cấu hình interceptors)

Cài thư viện formik && Thư viện validation

$ npm i formik
$ npm i yup

import { useFormik } from 'formik';
import * as yup from 'yup'

--Register from using Formik && Yup
image

--Call API (cấu hình interceptors)
Gửi dữ liệu input form đăng ký lên API
image

Nếu Email khác rỗng thì sẽ dẫn đến trang "profiles", ngược lại thì đá về trang "login" image

image

Dùng action async (action thunk) để call AIP gửi dữ liệu đăg nhập và trẻ về thông tin tên người dùng trên header image

Viết hàm để lưu thông tin user localStorage image

Gọi localStore để lấy dữ liệu user, nếu ko có thì trả về giá trị state mặc định, nếu có thì nó sẽ tự động đăng nhập. image

Logout và clear localStorage image

Call API get proflies image

Buổi 5: Custom hook interceptor

Cấu hình chung cho Header API, cài đặt interCepter cho request API (Bearer ${token}) --> ⭐ Lưu ý: Tránh tình trạng BE thay đổi dữ liệu header, nên sử dụng header cho tất cả khi call API image

--Movie)
image

Call API danh sách phim
image

--Thư viện history, cấu hình request và response) image image

  • "useNavigate" chỉ sử dụng được trong functional component nhưng "history" sử sụng được bất kỳ file nào kể cả trong reducer image

  • Nếu chưa đăng nhập thì sẽ đá về trang login yêu cầu đăng nhập còn đăng nhập rồi thì sẽ chuyển đến trang profiles. image

--Custom hook)
image Trang web tham khảo thêm về (custom) hooks:

  1. https://usehooks.com/ (custom hooks)
  2. https://usehooks-ts.com/ (custom hooks)
  3. https://mantine.dev/hooks/use-counter/ (bộ hooks của thư viện mantine)
  4. https://github.com/streamich/react-use
  5. https://github.com/streamich/react-use?fbclid=IwAR3R1tQBNTKowvRT60CDIjnIstcfGUnMewyi7R3yP2QSLBUJH1EgTg5hzxE
  • call API sử dụng custom hook và render ra giao diện image

Buổi 6: Thư viện Antd design - HOC (Higher order component) - Responsive

--Thư viện Antd design)

$ npm i antd
$ npm i @ant-design/icons

image



--HOC: (Higher order component) image image

-Viết theo class image

image -HOC ko sài được trên "functional Component return về 1 cái functional" mà thay vào đó phải retun về class mà class ko sài được Hook image

--Container Component (viết theo kiểu HOC và sài được HOOK)

  • Container Component viết theo kiểu HOC, nó sẽ nhận vào component không phài dưới dạng tham số mà chủ yếu nhận vào dưới dạng props
  • Conatiner component nhận vào component dưới dạng props và render props compnent đó trong phần nội dung
  • Conatiner component nhận component thông qua porps. image
    Truyền dạng thẻ thì sài databinding image
    Truyền dạng files thì sài dưới dạng thẻ image
    Truyền thẻ dưới dạng button dùng hook image
    Sử dụng redux để truyền thẻ component image



--Responsive) image giao diện <768px sẽ load ra giao diện như hình image image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published