🌊

【Nuxt UI】数値入力が空の時にnullを持たせる方法

に公開

結論

nullable修飾子を利用する

<template>
    <UInput v-model.number.nullable="val.optional" />
</template>

modelModifiers

modelModifiersというpropsがUInputには存在する。
以下、利用可能な修飾子とその説明です。

修飾子 説明
string 処理なし。
number numberに型変換。NaNになった場合は入力値をそのまま親に伝播する。
trim changeイベントの発火後、値をString.prototype.trim()を適用した値を親に伝播する。
lazy changeイベントの発火後、値を親に伝播する。
nullable 入力値がfalsyの場合nullに置き換える。
optional 入力値がfalsyの場合undefinedに置き換える。オブジェクトのプロパティがバインドされている場合はプロパティが削除される。

使い方

こんな感じで指定してあげるたら使える。

<template>
    <UInput v-model.nullable="value" />
</template>

修飾子自体はVue.jsのデフォルトの機能なので初めて知った人は先にその挙動を確認するのがいいと思う。

https://ja.vuejs.org/guide/essentials/forms.html#modifiers

Nuxt UI ドキュメントでの該当箇所はこちら〜

https://ui.nuxt.com/docs/components/input#props:~:text=false | true-,modelModifiers,-ModelModifiers

Discussion