Mn nghĩ gì về onChange?

96 lượt xem

profile picture

Ẩn danh

Ngày 25 tháng 04 năm 2023

Có ai không thích dùng onChange vì re-rendering không? Mình có nói chuyện với đồng nghiệp thì có bạn bảo vì dùng onChange thì bị re-rendering nên bạn ấy không thích, bạn thường dùng form hơn. Trong 2 cái này thì cái nào tốt hơn?

Đánh giá câu hỏi ngay!

Hãy ấn Up Vote với những câu hỏi cụ thể và chi tiết

Hãy ấn Down Vote với những câu hỏi chưa rõ ràng Careerly sẽ nhắc người hỏi chỉnh sửa lại.

1 câu trả lời

BEST

Ảnh đại diện của TrungQuanDev

=)) Câu hỏi thú vị, bạn em đã không thích thì đành chịu thôi chứ biết sao =)) Còn về câu hỏi em hỏi dùng cái nào tốt hơn thì anh sẽ trả lời là không có cái nào hơn cái nào hết, mỗi cái đều có nhiệm vụ riêng của nó nhé. - Về khía cạnh kỹ thuật, anh sẽ chia sẻ kinh nghiệm của a cũng như sẽ refer tới vài link tài liệu tham khảo bên dưới nhé: - "Các components trong react sẽ được re-render lại mỗi khi props hoặc state thay đổi, đó là cách mà React làm việc, và dĩ nhiên React nó đủ nhanh + tối ưu để làm việc đó." Vì vậy trong hầu hết mọi trường hợp, việc mà trong đầu chúng ta lúc nào cũng nghĩ tới tránh re-render không những là dư thừa (tự làm khó mình) mà còn có khi tác dụng ngược về hiệu suất bởi vì cứ phải cố viết thêm nhiều code hơn theo một cách tiếp cận khác để thay thế (tốn thời gian phát triển sản phẩm), hoặc đôi khi còn sinh ra bug về logic hiển thị phía UI nhé. - Trong dự án thực tế anh và các bạn đồng nghiệp hiện tại vẫn dùng onChange rất bình thường. Việc hạn chế re-render không phải là một thứ cần thiết ở giai đoạn khi chúng ta code tính năng mà nó "Chỉ cần thiết khi có những chỗ cần phải tối ưu nếu chúng ta thấy nó chậm." - Ví dụ từ bản thân chính anh ngày trước join vào một dự án đang chạy tốt, bỗng nhiên một ngày khách hàng báo về là giỏ hàng bị lag, lúc này anh kiểm tra thì nguyên nhân do giỏ hàng đó của riêng ông khách đó có tới mấy nghìn sản phẩm, và việc còn lại khá đơn giản, lúc này a mới dùng tới các kỹ thuật memoization để hạn chế re-render không cần thiết và chỉ tối ưu một mình trang đó thôi. ------------ Một vài lý thuyết liên quan mà a nghĩ sẽ rất tốt nếu em thử đọc thêm nhé: - Đầu tiên là bài viết này, a sẽ trích ra một đoạn ngắn từ tác giả: "MOST OF THE TIME YOU SHOULD NOT BOTHER OPTIMIZING UNNECESSARY RERENDERS. React is VERY fast and there are so many things I can think of for you to do with your time that would be better than optimizing things like this. In fact, the need to optimize stuff with what I'm about to show you is so rare that I've literally never needed to do it in the 3 years I worked on PayPal products and the even longer time that I've been working with React.” - https://kentcdodds.com/blog/usememo-and-usecallback ------------ Tiếp theo là 2 đoạn về rendering trong React nhé: - "Unlike browser DOM elements, React elements are plain objects, and are cheap to create. React DOM takes care of updating the DOM to match the React elements." - https://legacy.reactjs.org/docs/rendering-elements.html ------------ - React Only Updates What’s Necessary "React DOM compares the element and its children to the previous one, and only applies the DOM updates necessary to bring the DOM to the desired state." - https://legacy.reactjs.org/docs/rendering-elements.html#react-only-updates-whats-necessary

profile picture

Ẩn danh

Người viết

Ngày 26 tháng 04 năm 2023

Wow, câu trả lời đỉnh quá ah. Em cảm ơn a nhiều. E sẽ cố gắng học hỏi thêm ạ

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.

Xem thêm

Đồng ý với Điều khoản dịch vụ Chính sách bảo mật của Careerly

Bạn đã có tài khoản rồi?

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.