/><template>
// grandChildren
<template><button @click="$emit('value', 'newValueOfModel')">Update model</button.</template>
Можно, но скорее всего у вас архитектурная ошибка в логике работы компонентов
Что вы имеете ввиду?
Скорее всего, вы пытаетесь навести порядок в шаблоне через большое количество дочерних компонентов, и сохранить удобство использования v-model
нужно в чилдрене поймать событие и заэмитить
А что не так с этим? У меня есть один большой модуль, я решил разделить его на несколько небольших. Каждый из которых по сути модалка. Page Cart + Order + Quick Order Modal
Ну я через emit и сделал, просто казалось что v-model тут как раз место
нужно чтобы оба компонента эмитили событие
У меня v-model работает напрямую с Child, но не по цепочке Parent -> Child -> GrandChild
@agaagain Подскажите по этому
потому что нужно, чтобы каждый компонент эмитил событие, я же 2 раза уже это написал
Ну при прямой связи этого же не нужно
потому что цепочки нет
Ща в codesandbox сделаю пример, может по ходу и пойму что не понимаю
Представление компонентов, в твоём случае - модалки это просто вьюшка, сегодня это модалки, а завтра отдельные страницы, а потом просто блоки на одной странице, source of truth должен оставаться один. Насколько я понимаю, в данном случае всю модель было бы логично хранить в Page, и из модалок обычными эмитами получать данные, беспорядка в таком случае не будет и ты не будешь строить логику исходя из вьюшки
Ну вся логика и храниться в Page, какое это отношение к v-model имеет. По сути ведь <input v-model="variable"> = <input :value="variable" @input="variable = $event.target.value"
Если хочешь - можешь написать в личку конкретно по твоей ситуации, чтоб больше контакта было, я попробую помочь объяснить как это лучше организовать
Обсуждают сегодня