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 ...
谢谢大家,我已经解决了这个问题。问题是我在函数中写的
而不是
奇怪的是,在我的匿名函数中,它在没有
.value
的情况下工作,我不知道为什么。在此处的教程中: https://vuejs.org/tutorial/#step-4他们正在以我尝试使用它的方式使用它。他们也在教程中说.value
不是必需的,因为如果没有指定任何内容,它是隐式的?对于那些说我问题的标签和标题不正确的人,我下次会尽力做得更好,谢谢。 (这是我在 stackoverflow 上的第一篇文章)
谢谢:)