4
4
< meta charset ="utf-8 ">
5
5
< title > Vue.js • TodoMVC</ title >
6
6
< link rel ="stylesheet " href ="node_modules/todomvc-app-css/index.css ">
7
- < style > [v-cloak ] { display : none; } </ style >
7
+ < style >
8
+ [v-cloak ] {
9
+ display : none;
10
+ }
11
+ .todo-list {
12
+ position : relative;
13
+ overflow : hidden;
14
+ }
15
+ .todo {
16
+ height : 60px ;
17
+ }
18
+ .todo-move , .todo-enter-active , .todo-leave-active {
19
+ transition : all .25s cubic-bezier (.55 , 0 , .1 , 1 );
20
+ }
21
+ .todo-enter , .todo-leave-active {
22
+ opacity : 0 ;
23
+ height : 0 ;
24
+ }
25
+ </ style >
8
26
</ head >
9
27
< body >
10
28
< section class ="todoapp ">
@@ -18,13 +36,14 @@ <h1>todos</h1>
18
36
</ header >
19
37
< section class ="main " v-show ="todos.length " v-cloak >
20
38
< input class ="toggle-all " type ="checkbox " v-model ="allDone ">
21
- < ul class ="todo-list ">
22
- < li class ="todo "
23
- v-for ="todo in filteredTodos "
24
- :class ="{completed: todo.completed, editing: todo == editedTodo} ">
39
+ < ul class ="todo-list " is ="transition-group " name ="todo ">
40
+ < li v-for ="todo in filteredTodos "
41
+ class ="todo "
42
+ :key ="todo.id "
43
+ :class ="{ completed: todo.completed, editing: todo == editedTodo } ">
25
44
< div class ="view ">
26
45
< input class ="toggle " type ="checkbox " v-model ="todo.completed ">
27
- < label @dblclick ="editTodo(todo) "> {{todo.title}}</ label >
46
+ < label @dblclick ="editTodo(todo) "> {{ todo.title }}</ label >
28
47
< button class ="destroy " @click ="removeTodo(todo) "> </ button >
29
48
</ div >
30
49
< input class ="edit " type ="text "
@@ -41,9 +60,9 @@ <h1>todos</h1>
41
60
< strong > {{ remaining }}</ strong > {{ remaining | pluralize }} left
42
61
</ span >
43
62
< ul class ="filters ">
44
- < li > < a href ="#/all " :class ="{selected: visibility == 'all'} "> All</ a > </ li >
45
- < li > < a href ="#/active " :class ="{selected: visibility == 'active'} "> Active</ a > </ li >
46
- < li > < a href ="#/completed " :class ="{selected: visibility == 'completed'} "> Completed</ a > </ li >
63
+ < li > < a href ="#/all " :class ="{ selected: visibility == 'all' } "> All</ a > </ li >
64
+ < li > < a href ="#/active " :class ="{ selected: visibility == 'active' } "> Active</ a > </ li >
65
+ < li > < a href ="#/completed " :class ="{ selected: visibility == 'completed' } "> Completed</ a > </ li >
47
66
</ ul >
48
67
< button class ="clear-completed " @click ="removeCompleted " v-show ="todos.length > remaining ">
49
68
Clear completed
0 commit comments