Giả sử tôi có một số trạng thái phụ thuộc vào một số trạng thái khác (ví dụ: khi A thay đổi, tôi muốn B thay đổi).
Có thích hợp để tạo một hook quan sát A và đặt B bên trong hook useEffect không?
Liệu các hiệu ứng có phân tầng như vậy, khi tôi nhấp vào nút, hiệu ứng đầu tiên sẽ kích hoạt, khiến b thay đổi, khiến hiệu ứng thứ hai kích hoạt, trước khi kết xuất tiếp theo? Có bất kỳ nhược điểm nào về hiệu suất khi cấu trúc mã như thế này không?
let MyComponent = props => {
let [a, setA] = useState(1)
let [b, setB] = useState(2)
useEffect(
() => {
if (/*some stuff is true*/) {
setB(3)
}
},
[a],
)
useEffect(
() => {
// do some stuff
},
[b],
)
return (
<button
onClick={() => {
setA(5)
}}
>
click me
</button>
)
}