他の状態に依存している状態があるとしましょう(たとえば、Aが変更されたときにBを変更したい)。
Aを監視し、useEffectフック内にBを設定するフックを作成することは適切ですか?
ボタンをクリックすると、最初のエフェクトが起動してbが変化し、次のレンダリングの前に2番目のエフェクトが起動するように、エフェクトはカスケードされますか?このようなコードを構造化することのパフォーマンス上の欠点はありますか?
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>
)
}