小白自学前端,做个todolist练手(vue.js ), css样式都没写(orz)~
HTML 代码:
<!DOCTYPE html
>
<
html
lang=
"en"
>
<
head
>
<
meta
charset=
"UTF-8"
>
<
meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<
meta
http-equiv=
"X-UA-Compatible"
content=
"ie=edge"
>
<
title
>todolist
</
title
>
<
script
src=
"https://unpkg.com/vue"
>
<
/
script
>
</
head
>
<
body
>
<
div
id=
"todoList"
>
<
header
>
<
input
type=
"text"
v-on:keyup.
enter=
"todoAdd"
v-model=
"value"
>
</
header
>
<
main
>
<
div
>
<
header
>待办事项
</
header
>
<
ul
>
<
li
v-for=
"value in unfinish"
>
<
span @
click=
"editTodo(value)"
v-if=
'!value.edit'
>{{value.value}}
</
span
>
<
input
v-else
v-model=
"value.value" @
keydown.
13=
"saveTodo(value)"
type=
"text"
>
<
button
v-on:click=
"todoDel(value)"
>删除
</
button
>
<
button @
click=
"finish(value)"
>完成
</
button
>
</
li
>
</
ul
>
</
div
>
<
div
>
<
header
>完成事项
</
header
>
<
ul
>
<
li
v-for=
"value in finishtoDo"
>
<
span
>{{value.value}}
</
span
>
<
button
v-on:click=
"todoDel(value)"
>删除
</
button
>
<
button @
click=
"redoTodo(value)"
>重做
</
button
>
</
li
>
</
ul
>
</
div
>
</
main
>
</
div
>
<
script
src=
"app.js"
>
<
/
script
>
</
body
>
</
html
>
JavaScript 代码:
var
test =
new
Vue({
el:
'#todoList',
data: {
value:
'',
list: [],
},
computed: {
finishtoDo:
function () {
return
this.
list.
filter(
x
=>
x.
finish);
},
unfinish:
function () {
return
this.
list.
filter(
x
=> !
x.
finish);
}
},
methods: {
todoAdd:
function (
event) {
if (
this.
value ===
'') {
return
}
this.
list.
push({
value:
this.
value,
edit:
false,
finish:
false
});
this.
value =
"";
},
todoDel:
function (
value) {
this.
list =
this.
list.
filter(
x
=>
x !==
value);
},
finish:
function (
value) {
value.
finish =
true;
},
redoTodo:
function (
value) {
value.
finish =
false;
},
editTodo:
function (
value) {
value.
edit =
true;
},
saveTodo:
function (
value) {
value.
edit =
false;
}
}
})