Vue.jsでToDoアプリ作って詰まったとこ
checkboxのboolean問題
個人的にHTMLでCheckBoxを使用するときの扱い方は下記のようにしていた
//check済みで表示するとき <input type=“checkbox” checked=true>
なのでVueもそのように考えて下記のようにしたらfalse値のまま変化がなかった。。
<ul> //todo.isDoneは真偽値が返る(初期値はfalse) <li><input type=“checkbox” v-model:checked=“todo.isDone"><span>{{todo.item}}</span></li> </ul>
公式にはこのように記載されていた
form の input 要素 や textarea 要素、 select 要素に双方向 (two-way) データバインディングを作成するには、v-model ディレクティブを使用することができます。
v-model は任意の form 要素にある value、checked または selected 属性の初期値を無視します
なるほど。。(さっさと公式見るべきだった)
動的なclass属性の扱い方
結論、trueになると{done:todo.isDone}
のdone
がclassの値になりスタイルが適応できる
HTML
<span v-bind:class="{done:todo.isDone}">{{todo.item}}</span>
span.done{ text-decoration: line-through; }