и изнутри компонента, правильным ли будет прокидывать проп для обновления извне в компоненте через watch следить за пропсом и при его изменении обновлять состояние, а внутри компонента изменять состояние напрямую в ответ на событие или что-либо еще?
Нет, такой вариант неправильный, не стоит держать 2 состояния одного и того же, вы берете на себя дополнительную ответственность за их синхронизацию, а это лишняя никому не нужная проблема Просто при изменении внутреннего состояния делать эмит и изменять в родителе будет правильнее
Вы предлагаете поднимать состояние компонента в родителя? А если это компонент библиотеки и состояние должно быть инкапсулировано?
То что вы предложили мне напоминает, как если бы водителю поставили двигатель на колени чтобы залить в него масло вместо того чтобы предоставить доступ к капоту.
Что за компонент библиотеки в котором состояние должно быть инкапсулировано? Если состояние имеет отношение не только к этому компоненту, а вы про это и сказали, что оно может изменятся и вне его, то да предлагаю поднимать его выше, это нормально
Менять пропс напрямую - плохая идея Синхронизировать две переменных, которые отвечают за одного и то же состояние - тоже
Сейчас конкретно делаю грид с раскрывающимися группами строк. Каждая группа может раскрывать по какому-то действию вне компонента грида, так и по действию внутри него. Предлагаете состояние группы раскрыто/свернуто выносить наружу? Ведь это состояние относится к гриду.
Объекты возможно вполне себе
Каким образом в таком случае поведет себя реактивность? Будут ли изменения отражены в родительском компоненте?
Будут. Но это грешно
Поэтому это решение плохое и я рассматриваю реализацию через watch.
Если состояние изменяется снаружи — уже относится не только к компоненту
Если водителю нужно залить масло в двигатель (изменить уровень масла), уровень масла относится к водителю или к автомобилю?
Обсуждают сегодня