Kỹ thuật Lifting State Up trong ReactJS
https://freetuts.net/ky-thuat-lifting-state-up-trong-reactjs-2426.html
Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về Lifting State Up trong ReactJS, trong quá trình làm việc với React, các component phải re-render và thay đổi rất nhiều lần. Trong một vài trường hợp, bạn muốn khi 1 component con được thay đổi, đồng thời bạn muốn component cha cũng sẽ bắt được hành động đó. Theo tài liệu chính thức của ReactJS thì Lifting State Up được định nghĩa là rằng :
several components need to reflect the same changing data. We recommend lifting the shared state up to their closest common ancestor
chúng ta có thể hiểu rằngmột vài component phải cùng nhận được sự thay đổi. Chúng tôi khuyên bạn nên chia sẻ các state cho cha, mẹ, ông bà dòng họ của chúng :v
Đọc đến đây chắc hẳn bạn cũng sẽ hiểu một phần, kỹ thuật lifting state up là cách mà có thể chia sẻ dữ liệu cho các component khác. Có nghĩa là khi bạn thay đổi dữ liêu của 1 component con thì bạn sẽ gửi dữ liệu cho component cha biết.
1. Lifting State Up trong React
Trong phần này mình sẽ chỉ ra các bước thực hiện Lifting State Up, các bước thức hiện rất đơn giản và chúng ta sẽ có ví dụ cụ thẻ ở phần tiếp theo.
Trước tiên, chúng ta sẽ truyền cho component con một props có giá trị là một function. Function này sẽ được gọi khi component con trả về dữ liệu:
Tiếp theo, ở componentCon
chúng ta sẽ tiến hành gửi lại cho componentCha
bằng cách truyền vào props onReceiveData
giá trị cần gửi về.
Vậy là chúng ta đã gửi thành công dữ liệu từ componentCon
sang componenetCha
. Lúc này componentCha
có thể sử dụng dữ liệu đó. Đây là các bước cơ bản để sử dụng Lifting State Up. Chúng ta sẽ đi vào ví dụ cụ thể bên dưới.
2. Ví dụ cụ thể
Ở đây chúng ta sẽ đi vào ví dụ cụ thể về cách sử dụng kỹ thuật Lifting State Up. Mình sẽ đi xây dựng một ứng dụng cho phép chuyển đổi giữa USD và VNĐ. Chúng ta sẽ làm việc với file App.js
Trước tiên, chúng ta sẽ đi xây dựng component cha có tên Caculator
, và hàm handleChange
chịu trách nhận data từ component con.
Mình sẽ truyền cho 2 component con có tên USDtoVND
và VNDtoUSD
các props như:
onHandleChange: giúp cho component con có thể gửi dữ liệu về component cha.
value: giá trị của input.
Tiếp theo, chúng ta sẽ khởi tạo các component con có tên USDtoVND
và VNDtoUSD
:
các component này có nhiệm vụ chuyển từ đổi tiền và trả về cho component cha bằng prop onHandleChange()
.
Cuối cùng, chúng ta sẽ có file App.js
đầy đủ như sau:
Truy cập đường dẫn http://localhost:3000 và chúng ta sẽ thấy kết quả:
Kỹ thuật Lifting State Up chỉ có thể sử dụng khi bạn truyền từ component cha sang con và ngược lại. Tức là bạn chỉ có thể truyền dữ liệu từ 1 component quan hệ cha con. Trong trường hợp, bạn muốn chia sẻ dữ liệu state sang component khác, chúng ta sẽ có khái niệm về Redux, cho phép chúng ta tạo ra local state, giúp việc chia sẻ dữ liệu giữa các component được dễ dàng hơn.
Trên đây chúng ta đã cùng nhau đi tìm hiểu về kỹ thuật Lifting State Up trong ReactJS Đây là kiến thức rất cơ bản về nó nhưng cũng hết sức quan trọng trong quá trình làm việc với ReactJS sau này. Mong rằng bài viết sẽ giúp ích cho bạn.
Last updated
Was this helpful?