я никак не могут понять, как правильно с точки зрения best practice
У меня есть компонент OrderClient
Который должен возвращать либо clientId, если выбран существующий клиент
Либо clientId = 0, firstName, lastName, phone, если требуется создать нового клиента
Правильно ли будет такое использование компонента:
<OrderClient
v-model="clientId"
v-model:firstName="firstName"
v-model:lastName="lastName"
v-model:phone="phone"
/>
Внутри компонента не объявлять props (так как мне не нужно принимать значения, а только отдавать выбранные)
Делать только emit при изменении данных внутри компонента. Примерно так будет выглядеть компонент OrderClient:
export default {
emits: ['update:modelValue', 'update:firstName', 'update:'lastName', 'update:phone']
data() {
return {
clientId: null,
firstName: null,
lastName: null,
phone: null,
}
}
watch: {
clientId() {
this.$emit('update:modelValue', this.clientId);
},
firstName() {
this.$emit('update:firstName', this.firstName);
},
lastName() {
this.$emit('update:lastName', this.lastName);
},
phone() {
this.$emit('update:phone', this.phone);
},
}
Правилен ли вот такой подход?
Еще раз повторю: задача, создать компонент, который вернет либо id сущесвующего пользователя, либо данные для создания нового. Хочется понять, правильную ли я логику работы выбрал. Спасибо
Проще один раз передать объект
Сделай объект client туда запихни все поля, watch на объект и эмить в Вотчере целый объект
Обсуждают сегодня