Встречается на собеседованиях • сегодня
Как на Vue создать динамическую форму с передачей данных в компоненты любого уровня вложенности
Для создания динамической формы в Vue с передачей данных между компонентами любого уровня используйте:
- Vuex/Pinia - для глобального состояния:
js
// store.js
state: { formData: {} },
mutations: {
updateField(state, { path, value }) {
// deep update nested fields
path.reduce((obj, key, i) => {
if (i === path.length - 1) obj[key] = value
else if (!obj[key]) obj[key] = {}
return obj[key]
}, state.formData)
}
}- Provide/Inject - для глубокой вложенности:
js
// Parent.vue
provide() {
return {
formData: this.formData,
updateForm: this.updateField
}
}
// Child.vue
inject: ['formData', 'updateForm'],
methods: {
handleInput(e) {
this.updateForm(['nested', 'field'], e.target.value)
}
}- v-model + computed для двустороннего связывания:
js
computed: {
field: {
get() { return this.formData.nested.field },
set(value) { this.updateField(['nested', 'field'], value) }
}
}Для динамических полей используйте v-for с генерацией уникальных ключей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы