169 похожих чатов

Может кто разъяснить, нужен ли MutationObserver вместе с react? Создаётся впечатление,

что useState и useEffect способны полностью его заменить

8 ответов

23 просмотра

Да, ты прав

Да, с абстракцией в виде юай либ тебе не нужно отслеживать низкоуровневые последствия их работы. Можешь идти дальше, если хочешь подумать, useEffect - следствие изменения состояния (упростим) компонента. Но это изменение происходит не в вакууме, а в следствии каких-то бизнес-сценариев. Кто-то в юай либах всё приложение пишет и получается кривое-косое нечто, но опустим. Соответственно, в идеале, тебе надо отслеживать не дом ноды, не значения в компоненте, а триггеры бизнес-логики. «Раскрыли список -> грузим данные по id выбранной штуки»

Xxx- Автор вопроса
Dmitry Remezov
Да, с абстракцией в виде юай либ тебе не нужно отс...

>Но это изменение происходит не в вакууме, а в следствии каких-то бизнес-сценариев. Кто-то в юай либах всё приложение пишет и получается кривое-косое нечто, но опустим. Вот тут вас не понял. А в чём недостаток подхода с использованием состояний компонент и отслеживанием их изменений через useEffect? >Соответственно, в идеале, тебе надо отслеживать не дом ноды, не значения в компоненте, а триггеры бизнес-логики. «Раскрыли список -> грузим данные по id выбранной штуки» Так ведь это делается вешанием событий на элементы?

Xxx
>Но это изменение происходит не в вакууме, а в сле...

Недостаток в том, что у эффекта есть зависимости и ты не контролируешь его выполнение на сложных сценариях без приседаний с рефами или чем-то еще. Эффект подходит для синхронизации явного списка зависимостей с внешним миром и обратно. Например - синк document.title или подписка на внешний стор (для этого есть другой апи, но не суть). Эффект не подходит (ну, подходит, но на уровне забивания гвоздей микроскопом) для корректного описания сценариев «когда случилось Х - сделать У с такими-то данными», слишком топорный и для другого

Xxx- Автор вопроса
Dmitry Remezov
Недостаток в том, что у эффекта есть зависимости и...

>Эффект не подходит (ну, подходит, но на уровне забивания гвоздей микроскопом) для корректного описания сценариев «когда случилось Х - сделать У с такими-то данными», слишком топорный и для другого Приведите пример, прошу! А то я никак не могу сам такой кейс что-то выдумать)

Xxx
>Эффект не подходит (ну, подходит, но на уровне за...

Триггеры: - сбросить заказ - оформить заказ продукта Когда: нажали на сброс или ушли со страницы Сделать: сбросить заказ Когда: (триггер) сбросить заказ Взять: ID продукта из заказа Если: ID продукта есть Сделать: удалить продукт из заказа Когда: (триггер) оформить заказ продукта Взять: ID продукта из триггера Сделать: перейти на страницу заказа Когда: нажали на продукт Сделать: (триггер) оформить заказ продукта и (триггер) сбросить заказ

Xxx- Автор вопроса
Dmitry Remezov
Триггеры: - сбросить заказ - оформить заказ продук...

Т.е. вы это предпочли бы сделать через MutationObserver, а не через взаимодействие с предыдущим стейтом?

Xxx- Автор вопроса
Dmitry Remezov
Триггеры: - сбросить заказ - оформить заказ продук...

За интуицию по написанию сценариев благодарю

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта