Câu hỏi phỏng vấn React.js
Câu hỏi

Tại sao các class method cần phải ...

Câu trả lời

Trong React và JavaScript nói chung, các class method cần phải được bind với một class instance để đảm bảo rằng this trong phương thức đó luôn luôn tham chiếu đúng đến instance của class khi phương thức được gọi. Điều này đặc biệt quan trọng khi bạn sử dụng phương thức đó làm callback, ví dụ như trong sự kiện click hoặc trong các hàm bất đồng bộ.

Lý do cần bind:

  1. Đảm bảo this tham chiếu đúng: Trong JavaScript, giá trị của this trong một phương thức phụ thuộc vào cách phương thức đó được gọi. Khi một phương thức class được truyền như một callback mà không được bind, this sẽ không tham chiếu đến instance của class mà thay vào đó là undefined (trong strict mode) hoặc global object (trong non-strict mode), dẫn đến lỗi khi bạn cố gắng truy cập các thuộc tính hoặc phương thức khác của class thông qua this.

  2. Sử dụng trong Callbacks và Event Handlers: Trong React, thường xuyên cần truyền các phương thức class như là callbacks cho các sự kiện, ví dụ như onClick. Để đảm bảo rằng this trong các phương thức đó tham chiếu đúng đến component, bạn cần bind chúng trong constructor hoặc sử dụng các cú pháp khác như class fields syntax hoặc arrow func...

senior

senior

Gợi ý câu hỏi phỏng vấn

senior

Hooks có thay thế render props và** higher-order components (HOC)** không?

middle

React có re-render tất cả các components và sub components mỗi khi gọi setState không?

middle

Tại sao React sử dụng className thay vì thuộc tính class?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào