#vue.js #vuejs3 #vue-composition-api
Вопрос:
Как я могу сосредоточиться на этом простом примере ввода? Должен ли я создать еще одну переменную const nameRef = ref(null)
или есть более красивый способ решить эту проблему?
<template>
<input ref="name" :value="name" />
</template>
<script>
import {ref, computed} from 'vue';
export default {
props: ['name'],
setup(props) {
const name = computed(() => someTextPrepare(props.name));
// how can I do name.value.focus() for example?
return { name }
}
}
</script>
Комментарии:
1. пытался
this.$refs.name.focus()
?2. нет, я использую api композиции
3. Все, что вам нужно, находится в документах: v3.vuejs.org/guide/…
Ответ №1:
Попробуйте обернуть name
значение и ссылку в реактивное свойство :
<template>
<input :ref="theName.ref" :value="theName.value" />
</template>
<script>
import {ref, computed,reactive} from 'vue';
export default {
props: ['name'],
setup(props) {
const theName=reactive({
value:computed(() => someTextPrepare(props.name)),
ref: ref(null)
})
return { theName }
}
}
</script>