Vue
by Damian Dulisz
HTML
<div id="app">
<h2>Books:</h2>
<ol>
<pre>{{ books }}</pre>
<pre>Title is: {{ title }}</pre>
<li v-for="book in books">
<label>
<input type="checkbox" v-on:change="toggle(book)" v-bind:checked="book.read">
<del v-if="book.read">
{{ book.title }}
</del>
<span v-else>
{{ book.title }}
</span>
</label>
</li>
<li>
<button @click="addBook">Add book</button>
<input v-model="title" placeholder="Title" type="text">
</li>
</ol>
</div>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
Vue
new Vue({
el: "#app",
data: {
books: [
{ title: "Wiedzmin", read: false },
{ title: "Władca Pierścieni", read: false },
],
title: ''
},
methods: {
toggle: function (book){
book.read = !book.read
},
addBook: function () {
this.books.push({ title: "", read: false })
}
}
})