Первый запустит эффект при монтировании и при каждом изменении состояния.Очистка будет вызываться при изменении состояния и при размонтировании.
Вторая будет запускать эффект только один раз при монтировании, а очистка будет вызываться только при размонтировании.
Последняя будет выполнятьсяэффект при монтировании и при каждом изменении состояния isOn
.Очистка будет вызвана при изменении isOn
и при размонтировании.
В ваших примерах первый и последний примеры будут вести себя одинаково, потому что единственное состояние, которое изменится, это isOn
.Если бы в первом примере было больше состояния, этот эффект также восстановился бы, если бы другое состояние изменилось.
Полагаю, я должен также добавить, что порядок вещей будет выглядеть следующим образом: mount: -> run effect
, state change: run clean up -> run effect
unmount -> run clean up
.