vue.jeを用いたToDoアプリ
はじめに
お手本を元に写経しつつToDoアプリを作成することでvue.jsの基礎的な実践利用の方法を学んだ。 その後、学んだ知識を生かしてcheckDeleteボタンとallDeleteボタンを作ることで理解していることを整理した。
See the Pen ToDoApp by KKZoo (@kkzoo) on CodePen.
ToDoアプリを作った
Addボタンについて
addItem
はnull以外の入力があった場合、入力情報をtodo
に記憶し、その記憶を大元のdata
要素にpush
するためのプログラムである。
それで作ったデータをv-for
とv-model
を用いてdata
に入っている夫々の要素を出力している。
Deleteボタンについて
deleteItem
はJavaScriptのsplice
関数を用いて配列の中身を入れ替える操作を利用して任意の要素を1つ排除するためのプログラムである。
CSSについて
21行目のspanタグから読み取れるが、classの変数名がdone
でその値をtodo.isDone
から呼び出していることがわかる。
そうすることで、todo.isDone
が真の場合cssの以下のデザインが読み込まれて横線が引かれる様になっている。
- html
<span v-bind:class="{done: todo.isDone}">{{ todo.item }}</span>
#app span.done{ text-decoration: line-through; }
追加したコンテンツ
checkDeleteボタンを作った
checkDeleteボタンは配列をカウントダウン方式で全ての要素を総当たりでisDone
の値の真偽を計測し、True
になっている要素をsplice
関数を用いて消している。
allDeleteボタンを作った
allDeleteボタンはDeleteボタンを作る際の技術を用いて、splice(0)
とすることで全ての要素を削除しToDoアプリの出力を消している。
v-ifを用いたボタンの出現
追加コンテンツの上記ボタンは要素がある時にだけ出現させたかったので、v-if
でトリガーを出力に用いている配列todos[0]
を指定し、その中身がnull
の場合に消えるように条件付けした。
さいごに
文字にしてまとめることで、自分が行った学習がどのようなことをしているのかを改めて確認することになり、頭の中を整理するいい機会になりました。