Ich verstehe nicht, warum es funktioniert, wenn ich eine anonyme Funktion an das @input-Feld meiner HTML-Eingabekomponente übergebe, aber wenn ich die echte Funktion mit genau demselben Code darin aufrufe, funktioniert es nicht. Dies ist der Code, wenn es nicht funktioniert:
<script setup> import { ref } from 'vue' const text = ref('') const numberChar = ref(0) const numberWords = ref(0) function count() { numberChar = text.length numberWords = text.split(' ').filter((e) => e != '').length } </script> <template> <div class="box"> <input v-model="text" placeholder="Write here" @input="count"/> <p> Text : {{text}} <br> Characters : {{numberChar}} <br> Words : {{numberWords}} </p> </div> </template>
Aber wenn ich einfach sage:
<input v-model="text" placeholder="Write here" @input="() => numberChar = text.length"/>
numberChar-Wert wurde ge?ndert und korrekt angezeigt. Ich beginne mit Vuejs, also übersehe ich etwas, aber ich k?mpfe schon seit einer Stunde damit ...
謝謝大家,我已經(jīng)解決了這個問題。問題是我在函數(shù)中寫的
numberChar = text.length
而不是
numberChar.value = text.value.length
奇怪的是,在我的匿名函數(shù)中,它在沒有 .value
的情況下工作,我不知道為什么。在此處的教程中: https://vuejs.org/tutorial/#step-4他們正在以我嘗試使用它的方式使用它。他們也在教程中說 .value
不是必需的,因為如果沒有指定任何內(nèi)容,它是隱式的?
對于那些說我問題的標簽和標題不正確的人,我下次會盡力做得更好,謝謝。 (這是我在 stackoverflow 上的第一篇文章)
謝謝:)