Здравствуйте, сам разрабатываю на React, но приходится поддерживать проекты на Vue. Не совсем могу понять как правильно прокидывать props в компонент. Есть компонент
Input:
<template>
<input class="Input" v-bind="restProps" v-on="$listeners">
</template>
<script>
export default {
props: ['placeholder', 'keyupEnter'],
computed: {
restProps: function() {
return {
placeholder: this.placeholder
}
}
}
}
</script>
<style lang="scss" scoped>
.Input {
width: 100%;
height: 42px;
padding: 0 17px;
font-size: 12px;
border: 1px solid #E3E3E3;
border-radius: 2px;
}
</style>
Вот как он используется:
<Input placeholder="Название вопроса"
:value="question.name"
@input="actions.changeQuestionName(index, $event)" />
<Input placeholder="Название ответа"
@keyup.enter="actions.addQuestionAnswer.bind(null, index)" />
Проблемы:
- Как я понял, во Vue нету понятия restProps. Нужно либо все props пачкой накидывать через v-bind, либо
самому собирать нужные props в объект, что бы получилось что-то похожее. Это так или я что не понимаю?
- Тоже самое можно делать с обработчиками. Можно пачкой накинуть через v-on, но почему-то
@input отрабатывает, а @keyup.enter не хочет работать. В чем подвох?
Читал доки, но не особо понял как это делать правильно. Может то, что я пытаюсь сделать работает только в React.