Vuetifyでシンプルかつ、綺麗なチェックボックスを使ってみる
以前、Vuetify関連のシリーズ記事の
第6回目の記事で、Vuetifyを使って、文字数制限を効かせたテキストフィールドを作る方法について書きましたが、
今回は、それのテキストエリア版という事になります。
使うのは v-textarea というコンポーネントです。
↑Vuetify の v-textarea を使って、テキストエリアを表示してみます。
Vuetifyの導入方法について等は、以前の記事:
[Vue.js]Vuetify のUIコンポーネントを使ってみる[v-slide, v-caroucel編] にCDN経由での導入方法を、
[Vue.js] Vuetify を導入して Material Design をスマートに取り入れる方法 内に、CLI経由での導入方法 をご紹介しています。あわせてご覧ください。
基本のコードをご紹介
<template>
<v-textarea
auto-grow
counter
label="テキストを入力"
no-resize
placeholder="テキストを入力"
rows="3"
></v-textarea>
</template>
↑ v-textarea の基本形は、この様な形になります。
もっとシンプルでもいいんですが、
テキストエリアの右下についているリサイズ表示を消したり、
ラベルを表示したり、
最低限スマートな表示にしておきたかったので
いくつか prop を指定してあります。
上から順に、それぞれの prop の役割を書いておきます。
auto-grow … この prop を有効にすると、文字数に応じてテキストエリアが自動で伸びてくれます。
counter … この prop を有効にすると、右下に文字数カウントが表示できます。
label … テキストエリアにラベルがつきます。初期状態は、これがプレースホルダーとして入ることになります。
no-resize … リサイズ機能をオフにします。オンにしたい場合はこれを外します。
placeholder … 何も入力していない状態に表示されるプレースホルダーテキストです。
rows …行数を指定します。
実際に表示してみたテキストエリアのサンプル
今回も、実際に動くサンプルがあります。
次のリンクより、ご覧いただけます。
Vuetify の v-textarea のサンプル
その他のオプションなど
ここでは v-textarea に指定できる、いくつかの prop について書いていきたいと思います。
テキスト削除ボタンを表示する
<template>
<v-textarea
auto-grow
counter
clearable
clear-icon="mdi-close-circle"
label="テキストを入力"
no-resize
placeholder="テキストを入力"
rows="3"
></v-textarea>
</template>
↑clearable という prop を有効にすると、入力中のテキストを一括削除するアイコンを表示できます。
アイコンは、 clear-icon という prop に指定する値によって変更する事ができます。
(上記は、Material design icons の mdi-close-circle を指定。)
アウトラインスタイルに変更する
<template>
<v-textarea
auto-grow
counter
label="テキストを入力"
no-resize
outlined
placeholder="テキストを入力"
rows="3"
></v-textarea>
</template>
↑outlined という prop を有効にすると、外枠を持たせたスタイルに変更できます。
文字数制限を適用する
<template>
<v-textarea
auto-grow
counter
label="テキストを入力"
no-resize
placeholder="テキストを入力"
rows="3"
v-bind:rules="myrules"
></v-textarea>
</template>
v-text-field の記事の時と同様に、
rules という prop に条件を渡す事で、テキストエリアの制御ができます。
たとえば、文字数制限をかけたい場合は、次のような条件を data として渡します。
<script>
new Vue({
el: '#app',
vuetify: new Vuetify(),
data: {
myrules: [text => text.length <= 30 || '最大文字数は30文字です'],
}
});
</script>
オプション( props )を加えたサンプル
いくつかの props を加えたサンプルが、先ほどの基本形の下に作成してあります。
次のリンクより、確認する事ができます。
Vuetify の v-textarea のサンプル
公式ドキュメント、APIページなど
v-checkbox コンポーネントの Vuetify公式ページは以下です。
また、公式APIページはこちらになります。他のコンポーネント同様、設定できる props の一覧が記載されています。
v-textarea API -- Vuetify
この記事のまとめ
今回は、Vuetify のUIコンポーネントの中から、
スマートなテキストエリアを扱うことができる v-textarea をご紹介しました。
以前ご紹介した v-text-field と同様、とても使いやすく
見た目も綺麗かつ、文字数制限などの制御もしやすく、
良いUIコンポーネントですね。
文字数に応じて自動でテキストエリアが伸びてくれる点や、
一括削除機能が簡単につけられる点も
使い勝手が良さそうです。
当サイトでは今後も Vue.js、 Vuetify に関する記事を掲載していく予定です。
※この記事は、内容の品質向上を目的に、随時更新を行う場合があります。