Tương đương của componentDidMount trong hook là hàm useEffect. Các hàm được truyền cho useEffect được thực thi trên mọi thành phần hiển thị-trừ khi bạn chuyển đối số thứ hai vào nó.
Sử dụngEffect để làm gì?
UseEffect làm gì? Bằng cách sử dụng Hook này, bạn nói với React rằng thành phần của bạn cần phải làm gì đó sau khi kết xuất. React sẽ ghi nhớ hàm bạn đã truyền (chúng tôi sẽ gọi nó là “hiệu ứng” của chúng tôi) và gọi nó sau khi thực hiện cập nhật DOM.
Có phải componentDidMount là một móc nối React không?
useEffect là một hook React, nơi bạn có thể áp dụng các tác dụng phụ, chẳng hạn như lấy dữ liệu từ máy chủ. Đối số đầu tiên là một lệnh gọi lại sẽ được kích hoạt sau khi bố trí và tô trình duyệt.
Tại sao useEffect không được gọi là?
Lý do điều này xảy ra là vì lệnh gọi api không đồng bộ, nó không điền ngay trạng thái, vì vậy kết xuất xảy ra trước và cố gắng đọc. hiện tại từ trạng thái thời tiết ban đầu null. Giải pháp: trong phương thức kết xuất của bạn, hãy đảm bảo không đọc thời tiết.
Sử dụngEffect có luôn chạy trên Mount không?
Quan trọng: the useEffect hook sẽ luôn chạy trên mount bất kểnếu có bất kỳ thứ gì trong mảng phụ thuộc của nó. Có lẽ chúng tôi không muốn thực sự chạy hiệu ứng này trên dữ liệu của mình khi nó chưa được xác định (vì nó sẽ được hiển thị ban đầu) mà chúng tôi muốn đợi cho đến khi nó được điền từ lệnh gọi API.