使用Vue完成一个checklist
创建一个项目
1 | vue init webpack-simple vuedemo01 |
除了Use sass?选择N
,其他默认
根据提示安装依赖并运行
1 | cd vuedemo01 |
npm install
可以使用淘宝的镜像cnpm
使用编辑器打开该文件夹
需求
差不多是要完成以下界面
编码
去除App.vue
多余部分,剩下如下部分即可
1 | <template> |
html部分
包含
- 一个输入框,
- 两个h2标签的文字
- n个无序的项
- 删除按钮
1 | <template> |
script数据部分
每次输入到输入框
的内容需要一个变量来接收
存放的每个内容,以及与其对应的状态
1 | <script> |
为了把数据渲染到页面上,需要修改html部分的li中的内容
使用v-for
来循环输出list的索引和内容
使用v-if
来判断:
- 复选框没选中的内容会显示在
进行中
- 复选框选中的内容会显示在
已完成
1 | <ul> |
1 | <ul> |
函数部分
在说函数部分前,还剩下顶部的输入框还没有增加方法的入口
1 | <input type="text" v-model="todo" @keydown='doAdd($event)'> |
v-model
表明它接收的内容会修改todo
@keydown
对应键盘操作
在date部分之后增加methods
1 | import storage from "./model/storage.js"; |
这里封装了一个storage.js
,用于保存数据至本地,这样下次打开页面还是会恢复至上次关闭的时候。
1 | import { loadavg } from "os"; |
全代码
1 | <template> |