todo
This commit is contained in:
parent
22129d13ab
commit
f5a209ca1b
|
@ -0,0 +1,32 @@
|
|||
|
||||
Vue.component('todo-item', {
|
||||
template: '\
|
||||
<li>\
|
||||
{{ title }}\
|
||||
<button v-on:click="$emit(\'remove\')">Remove</button>\
|
||||
</li>\
|
||||
',
|
||||
props: ['title']
|
||||
})
|
||||
|
||||
new Vue({
|
||||
el: '#todo-list-example',
|
||||
data: {
|
||||
newTodoText: '',
|
||||
todos: [
|
||||
{ id: 1, title: 'Do the dishes' },
|
||||
{ id: 2, title: 'Take out the trash' },
|
||||
{ id: 3, title: 'Mow the lawn' }
|
||||
],
|
||||
nextTodoId: 4
|
||||
},
|
||||
methods: {
|
||||
addNewTodo: function () {
|
||||
this.todos.push({
|
||||
id: this.nextTodoId++,
|
||||
title: this.newTodoText
|
||||
})
|
||||
this.newTodoText = ''
|
||||
}
|
||||
}
|
||||
})
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>todo</title>
|
||||
<script src="https://vuejs.org/js/vue.js"></script><!-- dev version -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="todo-list-example">
|
||||
<form v-on:submit.prevent="addNewTodo">
|
||||
<label for="new-todo">Add a todo</label>
|
||||
<input
|
||||
v-model="newTodoText"
|
||||
id="new-todo"
|
||||
placeholder="E.g. Feed the cat">
|
||||
<button>Add</button>
|
||||
</form>
|
||||
<ul>
|
||||
<li
|
||||
is="todo-item"
|
||||
v-for="(todo, index) in todos"
|
||||
v-bind:key="todo.id"
|
||||
v-bind:title="todo.title"
|
||||
v-on:remove="todos.splice(index, 1)"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script src="app.js"></script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue