- vừa được xem lúc

Formik vs React Hook Form (Phần 1)

0 0 371

Người đăng: Ha Anh Duc

Theo Viblo Asia

Các lập trình viên Front End đều làm việc rất nhiều với form cùng sự phức tạp của ứng dụng. Do vậy chúng ta cần những thư viện form mạnh mẽ hỗ trợ quản lý các form state, form validation...

Bài viết này giới thiệu 2 thư viện form phổ biến trên đó là FormikReact Hook Form.

Thành phần module

Formik bao gồm có 9 dependencies khác

React Hook Form thì không có

Controlled & UnControlled Component

Formik chỉ hỗ trợ Controlled component còn React Hook Form thì hỗ trợ cả hai.

Controlled component lấy các value thông qua props và thông báo nếu có sự thay value qua 1 callback kiểu như onChange. Component cha sẽ "controls" nó sẽ xử lý callback đó và quản lý các state của chính nó và truyền props value mới cho các Controlled component.

Controlled component với React Hook Form

Controlled component với Formik

Uncontrolled component là nơi quản lý các state nội bộ và khi cần sử dụng thì bạn sẽ truy vấn đế DOM sử dụng ref để tìm các giá trị hiện tại.

Feature Uncontrolled Controlled
Truy xuất giá trị 1 lần (Ví dụ: on submit) ✅ ✅
Validating ✅ ✅
Điều kiện để disable submit button ❌ ✅
Mỗi input cho 1 phần của dữ liệu ❌ ✅
Dynamic input ❌ ✅

Re-rendering

Chúng ta đều cần tránh các re-render không cần thiết càng nhiều càng tốt để đảm hiệu năng khi ứng dụng phát triển lớn hơn.

Các fields phụ thuộc

Với React Hook Form thì watch Function sẽ giúp bạn theo dõi các input chỉ định và trả về giá trị của chúng để xác định nội dung cần render.

Với Formik thì mặc định đã bật theo dõi tất cả các field, bạn có thể thêm vào hoặc bỏ đi dựa vào các giá trị prop.

Event

React Hook Form sẽ đọc các giá trị form bên trong các event.

Lưu ý: Hàm getValues() sẽ không trigger các re-render hoặc các watch Function để thay đổi giá trị input

Với Formik thì bạn có thể đọc các giá trị form thông qua các prop.

Tóm tắt

Feature Formik React Hook Form
Dung lượng 12.6kB 5.2kB
Tải về hàng tuần 1,314,511 638,419
Dependencies 9 0
Các open Issue 498 6
Hỗ trợ React Native ✅ ✅
Hỗ trợ TypeScript ✅ ✅
Dung lượng 12.6kB 5.2kB
Hỗ trợ TypeScript ✅ ✅
Hỗ trợ Class component ✅ ❌
Tài liệu rõ ràng ✅ ✅
Khả năng tích hợp ✅ ✅

Bài viết dịch từ: https://dev.to/doaashafik/formik-vs-react-hook-form-aei

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học React Native từ cơ bản đến nâng cao - Phần 1 Hướng dẫn cài đặt và chạy "Hello world" (tài liệu viết từ 2018 nên giờ không còn phù hợp với version mới của react native hiện nay )

Trong bài viết này tôi sẽ hướng dẫn cài đặt React Native trên môi trường Windows (khá phổ biến ở Việt Nam). Cài đặt môi trường. Bạn cần phải có :. .

0 0 43

- vừa được xem lúc

Làm ứng dụng học toán đơn giản với React Native - Phần 6

Chào các bạn một năm mới an khang thịnh vượng, dồi dào sức khỏe. Lại là mình đây Đây là link app mà các bạn đang theo dõi :3 https://play.google.com/store/apps/details?id=com.

0 0 68

- vừa được xem lúc

Làm ứng dụng học toán đơn giản với React Native - Phần 5

Chào mọi người, lại là mình đây Sau 1 thời gian vừa viết bài hướng dẫn, vừa viết code thì mình đã đưa được cái app cơ bản của mình lên google play. Đây là link: https://play.google.com/store/apps/details?id=com.

0 0 119

- vừa được xem lúc

Responsive và Adaptive UI trong React Native

Một số mẹo chung. . Luôn set min width và max width. Điều này giúp cover tốt được các màn hình cỡ XS hoặc XL.

0 0 68

- vừa được xem lúc

Những điều cần lưu ý và sử dụng Hook trong React (Phần 2)

II. UseEffect và điều cần lưu ý . Có hai loại xử lý phổ biến trong các thành phần React: những xử lý phụ không yêu cầu cleanup và những xử lý phụ có cleanup. Hãy xem xét sự khác biệt này chi tiết hơn.

0 0 129

- vừa được xem lúc

17 thư viện cho React Native khuyên dùng 2020

Bài viết này mình xin giới thiệu một vài thư viện hữu ích mà mình hay dùng trong dự án. Đây là màn hình đầu tiên trong bất kỳ ứng dụng mobile nào.

0 0 177