В чем разница между watch и watchEffect в Vue 3?
И то и другое предназначено для отслеживания изменений в реактивных переменных. Но они имеют ряд отличий. Watch требует явного указания источника, реактивной переменной за которой будет происходить слежение. Так же он может обрабатывать ассинхронные операции. В выполняемой функции мы можем получить доступ к предыдущему значению реактивной переменной. WatchEffect по умолчанию отслеживает и реагирует на изменение всех реактивных переменных в компоненте. Это может как упростить код, так и привести к некоторым ошибкам в случае неосторожности. Так же он исполняется немедленно при создании как и watch с указанием imidiate: true. Так же у watchEffect есть интересная возможность отменять выполнение, что может сильно пригодиться при выполнении запросов при изменении, например, значения в поле поиска. Ставьте лайк и подписывайтесь!
· 24.06.2024
У обычного watch она тоже есть)
Интереснее было бы узнать как watchEffect следит за массивом реактивных состояний (оттуда, кстати, и идет то, что он выполняется сразу на этапе жизненного цикла created) ну или хотя бы его юзкейсы)
А то без раскрытия подробностей складывается ощущение, что вы перевели часть доки Vue 3 и сократили текст до необходимого минимума
ответить
коммент удалён
· 25.06.2024
Справедливое замечание. Этот пост это то что я знаю. К сожалению расширенный функционал watch и сам по себе watchEffect в реальности применять не приходилось чтобы знать о них более подробно
ответить
ответ удалён