useEffect trong React Hooks (ok)
https://freetuts.net/useeffect-trong-react-hooks-2578.html
Trong bài viết này chúng ta sẽ đi tìm hiểu về useEffect trong React Hooks. Ở các bài trước chúng ta đã cùng nhau đi tìm hiểu về useState hooks. Bài viết này sẽ tiếp nối series bằng một hook cũng khá quan trọng đó là useEffect, nó cho phép chúng ta làm việc với life cycle trong functional component.
1. useEffect trong React Hooks
useEffect là một hook trong React Hooks cho phép chúng ta làm việc với các life cycle ở functional component. Có thể hiểu đơn giản rằng useEffect Hook là của 3 phương thức componentDidMount, componentDidUpdate, và componentWillUnmount kết hợp lại với nhau.
Lifecyle là một phần rất quan trọng trong một component. Trong một vài trường hợp chúng ta cần phải fetch data từ API khi component đã được render, hay thực hiện hành động nào đó khi một component được update. Bởi vậy có thể thấy rằng phương thức quan trọng và hay được sử dụng nhất trong lifce cycle đó là componentDidMount, componentDidUpdate.
Nhưng trong một functional component không thể làm việc với các life cycle này bằng cách thông thường, bởi vậy useEffect
Hooks sinh ra để làm điều này.
useEffect cho phép chúng ta xử lý các logic trong các vòng đời của component và được gọi mỗi khi có bất cứ sự thay đổi nào trong một componnet.
2. Sử dụng useEffect
Chúng ta sẽ đi vào tìm hiểu sâu hơn về useEffect bằng cách đi qua các ví dụ cụ thể. Để sử dụng useEffect bạn cần phải import nó vào trong component cần sử dụng:
trong đó arrayDependencies
là một mảng các giá trị, khi giá trị trong mảng này thay đổi thì hàm effectFunction
sẽ được gọi. Trước khi đi tiếp vào phần sau bạn có thể tham khảo thêm bài viết về Tìm hiểu về Life cycle trong ReactJS.
Sử dụng useEffect như componentDidMount
Chúng ta có thể bắt sự kiện componentDidMount
trong một functional component bằng cách sử dụng useEffect
và chỉ định arrayDependencies
là một mảng rỗng:
Nó thường được sử dụng để gọi API khi compoent đã được render. Ở đây mình có một ví dụ về gọi API.
Sử dụng useEffect như componentDidUpdate
Để sử dụng componentDidUpdate
trong functional component chúng ta sẽ chỉ định giả trị của tham số arrayDependencies
là null
.
Ở đây chúng ta sẽ xây dựng ví dụ về thay đổi tiêu đề mỗi khi component thực hiện update.
Sử dụng useEffect như componentUnWillMount
Lifecycle thứ 3 mà chúng ta có thể sử dụng được với useEffect là componentUnWillMount
, lifecycle này được khởi chạy khi mỗi khi component chuẩn bị được xóa khỏi tree dom. Để sử dụng nó bằng useEffect chúng ta chỉ cần return về 1 function trong effectFunction
, function được return đó sẽ đóng vai trò như là componentUnWillMount
. Cùng xem xét ví dụ bên duới:
mở Dev Tools -> Console lên và bạn sẽ thấy sự thay đổi ở mỗi lần component bị xóa bỏ khỏi tree dom.
Last updated
Was this helpful?