Що робить модифікатор .number?
Модифікатор .number у директиві v-model автоматично перетворює введене користувачем значення на число перед записом у модель.
Простіше кажучи:
.numberробить так, щоб значення, введене в input, перетворювалося з рядка на тип Number.
Як працює .number?
html
<input v-model.number="age">Користувач вводить:
"25"
У змінну age потрапить:
25 // число, а не рядок
Vue автоматично викличе Number(value) або аналогічне перетворення.
Приклад
vue
<input v-model.number="price" />
<p>Тип: {{ typeof price }}</p>Користувач вводить:
"100"
Відобразиться:
Тип: number
Коли корисно використовувати .number?
1. Для числових полів форм
- вік
- ціна
- розмір
- кількість
- рейтинг
2. Щоб уникнути помилок при порівнянні
js
"10" > "2" // true (лексичне порівняння)
10 > 2 // true3. Щоб API отримувало правильний тип
Наприклад, backend очікує число:
json
{ "limit": 50 }Але без .number ви б надіслали рядок "50".
4. Щоб уникнути кастомного приведення типу в коді
Замість:
js
age = Number(e.target.value)Можна просто:
html
<input v-model.number="age">Важливі особливості
1. Якщо значення не можна перетворити на число
Наприклад, "abc" або порожній рядок "":
js
Number("abc") // NaNУ модель потрапить NaN.
2. Працює лише для input type="text" і подібних
Для input type="number" це зазвичай теж корисно, але потрібно враховувати HTML5-валідацію.
3. Не впливає на вивід - лише на збереження у змінну
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.