首页 > 其他分享 >vue--day44-todolist的localStorage本地存储

vue--day44-todolist的localStorage本地存储

时间:2023-07-25 22:55:29浏览次数:45  
标签:vue -- todolist done localStorage todo id todos

添加修改删除数据发生变化,可以用watch 监测来实现监测数据的变化

1. App.vue 

 

<template> <div id="root"> <div class="todo-container"> <div class="todo-wrap"> <!--传递函数 儿子给父亲传东西,父亲偷偷传递一个函数,儿子调用这个函数--> <MyHeader :addTodo="addTodo"/> <!--父亲给儿子传数据 父亲通过数据绑定传数据 儿子通过 props:['todos'],//声明接收todo 对象 --> <MyList :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo"/> <MyFooter :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo"/> </div> </div> </div>     </template>
<script> //样式的引入和这里有关系 import MyHeader from './components/MyHeader.vue'; import MyList from './components/MyList.vue'; import MyFooter from './components/MyFooter.vue';

export default { name: 'App', components: { MyHeader, MyList, MyFooter }, data(){ return { todos:JSON.parse(localStorage.getItem("todos"))||[] }   },
methods:{ // 添加一个todo addTodo(todoObj){ // console.log('我是app组件,我收到了数据x==',todoObj); this.todos.unshift(todoObj)
}, //勾选or 取消勾选 todo checkTodo(id){ this.todos.forEach((todo)=>{ if(todo.id===id) todo.done=!todo.done }) }, //删除一个todo deleteTodo(id){ this.todos=this.todos.filter((todo)=>{ return todo.id!==id; }) },
//全选or全不选 checkAllTodo(done){ this.todos.forEach((todo)=>{ todo.done=done }) },
clearAllTodo(){ this.todos=this.todos.filter((todo)=>{ return !todo.done }) }
}, watch:{ // todos(value){ // localStorage.setItem("todos", JSON.stringify(value)); // } todos:{ deep:true, handler(value){ localStorage.setItem("todos", JSON.stringify(value)); } }
} } </script>
<style>

/* 整体样式 */ body { background: rgba(230, 241, 245, 0.816); }
.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>

标签:vue,--,todolist,done,localStorage,todo,id,todos
From: https://www.cnblogs.com/satisfysmy/p/17581255.html

相关文章

  • 7/25
    读后感,准备数学建模,科二,pta实验报告,算协网课,小组会,还要抽时间学习java和html。这是接下来二十多天的任务。一个重大的挑战。这些事情还要集中发生在这一个星期。今天照旧,明天该改变了。三千米打卡。......
  • [爬虫]2.2.2 使用PhantomJS处理JavaScript
    PhantomJS是一个无头(headless)浏览器,它可以解析和执行JavaScript,非常适合用于爬取动态网页。"无头"意味着它可以在没有用户界面的情况下运行,这对于服务器环境和自动化任务非常有用。安装PhantomJS首先,你需要下载并安装PhantomJS。你可以从官方网站下载↗适合你的操作系统的版本......
  • css案例-after伪类元素的例子
    下位三角例子<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</tit......
  • 01 linux基础(1)
    环境安装解压,从vmware打开虚拟机。设置密码:1打开终端:ctrl+alt+tlinux介绍Linux的发展1)1969年,由kenthompson在AT&T贝尔实验室实现的。使用的是汇编语言。2)1970年,KenThompson和DennisRitchie是使用C语言对整个系统进行了再加工和编写,是的Unix能够很容易的移植到其他硬件的......
  • JDBC preparedStatement.executeQuery() 与 preparedStatement.executeQuery(sql)
    preparedStatement.executeQuery()这个方法是执行带占位符、已经预编译的sql命令而它--->preparedStatement.executeQuery(sql)这个方法是执行未预编译、完整的sql命令,而不是预编译的sql命令preparedStatement不是应该执行预编译的sql吗?是这样的,但是preparedStatement还兼......
  • 关于开设go语言专题的说明
    本专题写作的目的其实是分享go语言编程的使用场景,介绍go语言编程的方方面面,让大家能够用好这个由google公司发明的强力工具,提升大家在这方面的生产力,毕竟”君子善假与物也“嘛。这里我先说明一下,我并不是一个对go语言的所有一切都认同的人,你会发现很多相关从业者也会吐槽go语言的......
  • 盘点一个通过python大批量插入数据到数据库的方法
    大家好,我是皮皮。一、前言前几天在Python白银群【鶏啊鶏】问了一个Python数据存入数据库的问题,一起来看看吧。各位大佬我想请教下通过python大批量插入数据到数据库的方法目前我在用的操作是以下这个模式:sql=''foriinlist:sql="insertXXX表(地址,单号,缸号,状态,备......
  • 02 linux 基础(2)
    shell基本维护命令获取联机帮助使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为:联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。无论帮助有多长,都遵循这个格式显示。在页面很多的情况下使用PageUp......
  • 03 shell 编程
    变量语言型编译型语言解释型语言shell脚本语言是解释型语言shell脚本的本质:shell命令的有序集合shell编程的基本过程基本过程分为三步:step1.建立shell文件包含任意多行操作系统命令或shell命令的文本文件;step2.赋予shell文件执行权限用chmod命令修改......
  • 多环境开发兼容问题(Maven与Springboot)
          ......