Todo-List案例版本二

news/2024/10/18 1:33:55/

(160条消息) Todo-List案例版本一_bubbleJessica的博客-CSDN博客

引入了localStorage,让案例更加完善

src/App.vue

<template><div id="root"><div class="todo-container"><div class="todo-wrap"><MyHeader :addToDo="addToDo" /><MyList :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo" /><MyFooter :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo" /></div></div></div>
</template><script>
import MyHeader from './components/MyHeader'
import MyList from './components/MyList'
import MyFooter from './components/MyFooter'export default {name: 'App',data() {return {// 由于todos是MyHeader组件和MyFooter组件都在使用,所以放在App中(状态提升)todos: JSON.parse(localStorage.getItem('todos')) || []}},components: { MyHeader, MyList, MyFooter },methods: {// 添加一个todoaddToDo(todoObj) {this.todos.unshift(todoObj)},// 勾选or取消勾选一个todocheckTodo(id) {this.todos.forEach((todo) => {if (todo.id === id) todo.done = !todo.done})},// 删除一个tododeleteTodo(id) {// 注意:filter不改变原数组,只是新建一个数组this.todos = this.todos.filter((todo) => {return todo.id !== id})},// 全选or取消全选checkAllTodo(done) {this.todos.forEach((todo) => {todo.done = done})},// 清除所有已完成的todoclearAllTodo() {this.todos = this.todos.filter((todo) => {return !todo.done})}},watch: {// todos简写不包含深度监视// todos(value) {//     localStorage.setItem('todos', JSON.stringify(value))// }// todos完整版深度监视todos:{deep:true,handler(value){localStorage.setItem('todos', JSON.stringify(value))}}}
}
</script><style>
/*base*/
body {background: #fff;
}.btn {display: inline-block;padding: 4px 12px;margin-bottom: 0;font-size: 14px;line-height: 20px;text-align: center;vertical-align: middle;cursor: pointer;box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);border-radius: 4px;
}.btn-danger {color: #fff;background-color: #da4f49;border: 1px solid #bd362f;
}.btn-danger:hover {color: #fff;background-color: #bd362f;
}.btn:focus {outline: none;
}.todo-container {width: 600px;margin: 0 auto;
}.todo-container .todo-wrap {padding: 10px;border: 1px solid #ddd;border-radius: 5px;
}
</style>


http://www.ppmy.cn/news/794287.html

相关文章

FPGA纯verilog实现UDP协议栈,GMII接口驱动88E1111,提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案网络PHYGMII AXIS接口模块AXIS FIFOUDP协议栈 5、vivado工程1-->B50610 工程6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利&#xff1a;工程代码的获取 1、前言 目前网上的fpga实现ud…

docker版jxTMS使用指南:数据源之modbus

本文讲解4.2版jxTMS如何用数据源访问modbus设备&#xff0c;整个系列的文章请查看&#xff1a;docker版jxTMS使用指南&#xff1a;4.2版升级内容 docker版本的使用&#xff0c;请参考docker版jxTMS使用指南 4.0版jxTMS的说明&#xff0c;请查看&#xff1a;4.0版升级内容 在…

2023年华中杯数学建模C题空气质量预测与预警解题全过程文档及程序

2023年华中杯数学建模 C题 空气质量预测与预警 原题再现 空气污染对人类健康、生态环境、社会经济造成危害&#xff0c;其污染水平受诸多因素的影响&#xff0c;如 PM2.5、PM10、CO、气温、风速、降水量等&#xff0c;探究 PM2.5 等污染物浓度的因素&#xff0c;更精准的预测…

五.LLC谐振变换器

LLC 谐振变换器启动过程分析 LLC 谐振变换器的组成结构中包含容性器件&#xff0c;为了尽可能减小输出电压纹波&#xff0c;钳位输出电压&#xff0c;此时希望输出滤波电容尽可能的大&#xff0c;因此也会在启动的时候&#xff0c;电容两端电压近似为 0&#xff0c;系统对电容…

机器学习算法基础学习 # 集成学习之随机森林

随机森林(Random Forests) 是集成学习算法的一种。集成学习是通过组合多个学习器来完成学习任务。随机森林是结合多颗决策树来对样本进行训练和预测。随机森林通过随机扰动而令所有的树去相关。 随机森林可以使用巨量的预测器&#xff0c;甚至预测器的数量比观察样本的数量还多…

Office2016的PPT放映幻灯片放映卡死解决方法

今天写一篇软文&#xff0c;非技术&#xff0c;而是技巧。 不知道大家有没有遇到过&#xff0c;PPT在非放映状态的时候&#xff0c;一切正常&#xff0c;但是只要点击放映&#xff0c;立马就卡死了。 此问题可能由于电脑的独立显卡硬件加速和office软件兼容性不好造成的。 解…

关于在Windows10 上PPT 2016不能插入Flash动画问题

亲测可行&#xff1a; 官网补丁&#xff1a; https://gallery.technet.microsoft.com/scriptcenter/Registry-keys-to-reenable-7cd9f723/view/Discussions#content 下载后直接执行一下Reg即可&#xff1a; 微软官方提供的补丁包&#xff0c;无需自己手动修改注册表。 简单…

一键解决PPT的动画播放和动画排序问题!

对于每一个想要做好PPT&#xff0c;但又不想浪费时间的小伙伴来说&#xff0c;能够一键解决PPT里面的某些问题&#xff0c;不用挨个手动设置&#xff0c;是最好&#xff0c;且最舒服的操作了。因为我们制作PPT又不是只作一张&#xff0c;而是制作很多张。格式要统一&#xff0c…