Phản ứng sử dụngEffect theo chiều sâu / sử dụng useEffect?


10

Tôi đang cố gắng để hiểu sâu useEffectmóc.

Tôi muốn biết khi nào nên sử dụng phương pháp nào và tại sao?

1.useEffect with no second paraments
 useEffect(()=>{})

2.useEffect with second paraments as []
  useEffect(()=>{},[])

3.useEffect with some arguments passed in the second parameter
 useEffect(()=>{},[arg])

3
1. Đang được gọi trên mount và mọi cập nhật phụ thuộc (mọi thay đổi trạng thái / đạo cụ). 2. Chỉ được gọi trên mount vì bạn đã chỉ định danh sách phụ thuộc trống. 3. Được gọi là gắn kết và thay đổi bất kỳ phụ thuộc được liệt kê
ajobi

2
Dan Abramov đã viết một bài đăng blog tuyệt vời về useEffect: overreacted.io/a-complete-guide-to-useeffect . Bạn nên đọc nó ;-)
rphonika

Câu trả lời:


18
useEffect(callback)

Chạy trên mọi thành phần kết xuất.

Thường được sử dụng để gỡ lỗi, tương tự như thực thi cơ thể của chức năng trên mỗi kết xuất:

const Component = () => {
  callback()
  return <></>;
};

useEffect(callback,[])

Chạy một lần trên một thành phần gắn kết.

Thường được sử dụng để khởi tạo trạng thái thành phần bằng cách tìm nạp dữ liệu, v.v.

Lưu ý : Các callback được thực hiện sau khi các giai đoạn làm (Được biết đến "Gotcha").


useEffect(callback,[arg])

Chạy về biến đổi của arggiá trị.

"On Change" dùng để so sánh nông với giá trị trước đó arg(so sánh giá trị của argkết xuất trước đó và kết xuất hiện tại, prevArg === arg ? Do nothing : callback()).

Thường được sử dụng để chạy các sự kiện về đạo cụ / thay đổi trạng thái.

Lưu ý: Có thể cung cấp nhiều phụ thuộc: [arg1,arg2,arg3...]



1

Nếu bạn đã quen thuộc với các phương thức vòng đời của lớp React, bạn có thể nghĩ đến việc sử dụngEffect Hook như thành phầnDidMount, thành phầnDidUpdate và thành phầnWillUnmount kết hợp.

1.useEffect không có thông số thứ hai: Điều này được sử dụng khi chúng ta muốn điều gì đó xảy ra khi thành phần vừa được gắn hoặc nếu nó đã được cập nhật. Về mặt khái niệm, chúng tôi muốn nó xảy ra sau mỗi kết xuất.

2.useEffect với các tham số thứ hai là []: Nó được sử dụng khi chúng ta muốn một cái gì đó xảy ra tại thời điểm lắp đặt thành phần, nếu chỉ thực hiện một lần tại thời điểm gắn kết. Nó gần với thành phần quen thuộcDidMount và thành phầnWillUnmount.

3.useEffect với một số đối số được truyền trong tham số thứ hai: Điều này được sử dụng khi chúng ta muốn một cái gì đó xảy ra tại thời điểm khi pramter đi qua, ví dụ. args đã thay đổi trong trường hợp của bạn.

Để biết thêm thông tin. kiểm tra tại đây: https://reactjs.org/docs/hooks-effect.html


0

3.useEffect với một số đối số được truyền trong tham số thứ hai useEffect (() => {}, [arg])

Nó sẽ chạy trước sau đó nó sẽ chạy lại nếu arg thay đổi

Bạn cũng quên hỏi về sự trở lại bên trong useEffect ... Công dụng của nó để dọn dẹp nó sẽ chạy khi tháo dỡ linh kiện

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.