child компонентов из родительского компонента ?
к примеру в чайлдах обновляется в-модель данных, я бы хотел прочитать эти данные с вышего (родительского) компонента, где все эти чайлды вызваны
- если это v-model - она видна снаружи - если это какие-то другие данные - они не должны быть видны снаружи
что-то я не могу найти в документации об этом ничего
если в чайлде что то меняется, то из него генерируешь событие и родитель на это событие реагирует
а как подловить это событье если родитель не прямой, а выше несколько уровней ? в смысле как програмно можно подписаться под это событье в скрипте ?
если там не сильно глубокая вложенность можно просто пробрасывать события. плюс посмотри провайд/инжект в доке
этот инжект провайд работает только сверху вниз ? обратно не рабоает, от чайлда к паренту
Родитель может отправить чилдам например функцию setFoo() и чилд вызвав её что то передаст в родителя. В таком духе работает "обратно"
при крайней необходимости можно сделать провайд функции, а в ней будет что-то передаваться родителю
может просто сделать через store или eventbus, как вы считаете ? запариться можно делать везде такие провайды
Ооой ивент бас пилар предатель не работал у меня никогда, хз почему
композаблы самое удобное или стор провайды для уникальных случаев
глобальный реф
Я понял. спасибо
да я так и сделал через реактивный стор, в паренте провайд стора сделал, а в других местах просто инжект стора делаю и все дела. // store.ts import { reactive } from 'vue'; const state: any = reactive({}); export default { state }; // parent.vue import { provide } from 'vue'; import store from 'store.ts'; export default defineComponent({ setup () { provide('store', store); } }) // another-comp.vue import { inject } from 'vue'; export default defineComponent({ setup () { const store = inject('store'); } })
а зачем тут provide/inject, если у тебя стейт и так в глобальной видимости находится и доступен откуда угодно простым импортом?
иначе не работает 😒
значит что-то неправильно делал, provide/inject тут никак не способствует тому, чтобы он работал
щас попробую без них
спасибо братан, ты прав, provide/inject вообще не нужен
Обсуждают сегодня