<p>Hello {{ name.toUpperCase() }}</p> <p><input type="text" v-model="name"></p>
(function(){ 'use strict'; var vm = new Vue({ el: '#app', data: { newItem: '', todos:[ 'task1', 'task2', 'task3' ] }, methods: { addItem: function(){ // e.preventDefault(); this.todos.push(this.newItem); this.newItem = ''; } } }); })();
<div id="app" class="container"> <h1>My Todos</h1> <ul> <li v-for="(todo, index) in todos"> {{ todo }} <span @click="deleteItem(index)" class="command">[x]</span> </li> </ul> <form @submit.prevent="addItem"> <input type="text" v-model="newItem"> <input type="submit" value="Add"> </form> </div>
(function(){ 'use strict'; var vm = new Vue({ el: '#app', data: { newItem: '', todos:[{ title: 'task1', isDone: false },{ title: 'task2', isDone: false },{ title: 'task3', isDone: true }] }, methods: { addItem: function(){ var item = { title: this.newItem, isDone: false }; this.todos.push(item); this.newItem = ''; }, deleteItem: function(index){ // e.preventDefault(); if(confirm('are you shure')){ this.todos.splice(index, 1); } } } }); })();
computed: { remaining: function(){ var items = this.todos.filter(function(todo){ return !todo.isDone; }); return items.length; } }
(function(){ 'use strict'; var vm = new Vue({ el: '#app', data: { newItem: '', todos:[] }, watch: { todos: { handler: function(){ localStorage.setItem('todos', JSON.stringify(this.todos)); }, deep: true } }, mounted: function(){ this.todos = JSON.parse(localStorage.getItem('todos')) || []; }, methods: { addItem: function(){ var item = { title: this.newItem, isDone: false }; this.todos.push(item); this.newItem = ''; }, deleteItem: function(index){ // e.preventDefault(); if(confirm('are you shure')){ this.todos.splice(index, 1); } }, purge: function(){ if(!confirm('delete finished')){ return; } this.todos = this.remaining; } }, computed: { remaining: function(){ return this.todos.filter(function(todo){ return !todo.isDone; }); } } }); })();