Vue 浏览器本地存储

news/2024/7/10 2:19:41 标签: vue

文章目录

  • localstorage
  • SessionStorage
  • 总结
  • TodoList 改为本地存储

localstorage

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浏览器本地存储</title>
</head>
<body>
<div id="root">
    <button onclick="saveData()">点我保存一个数据</button>
    <button onclick="readData()">点我读取一个数据</button>
    <button onclick="deleteData()">点我删除一个数据</button>
    <button onclick="deleteAllData()">点我清空数据</button>
</div>
<script type="text/javascript">
    let person = {name:"张三",age:"18"}
    function saveData() {
        localStorage.setItem("msg","hello")
        localStorage.setItem("msg2",666)
        localStorage.setItem("msg3",JSON.stringify(person))
    }
    function readData(){
        console.log(localStorage.getItem("msg"))
        console.log(localStorage.getItem("msg2"))

        const result = localStorage.getItem("msg3")
        console.log(result)
        console.log(JSON.parse(result))
    }
    function deleteData(){
        localStorage.removeItem("msg")
    }
    function deleteAllData(){
        localStorage.clear()
    }
</script>
</body>
</html>

在这里插入图片描述

SessionStorage

和 LocalStorage 用法相同,把上边代码中的 localStorage改为sessionStorage
在这里插入图片描述

总结

LocalStorage 和 SessionStorage 统称为 WebStorage
1.存储内容大小一般支持5MB左右(不同浏览器可能还不一样)
⒉浏览器端通过 Window.sessionStorageWindow.localStorage属性来实现本地存储机制
3.相关API:
1.xxxxxStorage.setItem( " key' , "value");
该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值
2.xxxxxStorage.getItem( "person");
该方法接受一个键名作为参数,返回健名对应的值
3.xxxxxStorage.removeItem( "key");
该方法接受一个键名作为参数,并把该键名从存储中删除
4.xxxxxStorage.clear()
该方法会清空存储中的所有数据
4.备注:
1.SessionStorage 存储的内容会随着浏览器窗口关闭而消失
2.LocalStorage 存储的内容,需要手动清除才会消失(调用api 或 清空缓存)
3. xxxxStorage.getItem(xxx),如果 xxx 对应的 value 获取不到,那么 getltem 的返回值是null
4.JSON.parse(null) 的结果依然是 null

TodoList 改为本地存储

我们之前写的 TodoList 案例数据是写死的,每次刷新都恢复到写死的数据,我们现在把它改为本地存储。修改 App.vue,把 todos 改为深度监视,每当 todos 发生变化就使用本地存储存储数据。同时初始化的时候,todos 赋值是从本地存储读取的

......
<script>
......
export default {
  ......
  data() {
    return {
      //读取本地存储
      todos: JSON.parse(localStorage.getItem("todos")) || []
    }
  },
  methods: {
    ......
  },
  watch:{
    //深度监视
    todos:{
      deep:true,
      handler(value){
        localStorage.setItem("todos",JSON.stringify(value))
      }
    }
  }
}
</script>
......

运行程序,输入数据,刷新浏览器,数据不会消失
在这里插入图片描述


http://www.niftyadmin.cn/n/1816744.html

相关文章

控制HTML页面内容不能选中的方法

方法有二 一&#xff1a; css 方法 user-seletct: none;-webkit-user-seletct: none;-moz-user-seletct: none;-ms-user-seletct: none; none: 不能选中内容 text: 能选中内容 二&#xff1a;js 方法 document.body.onselectstart function(){  return false;} 返回 …

VSS出现的是file name.dat may be corrupt错误

出现这个错误的时候&#xff0c;只要从命令窗口CD到VSS的安装目录下的win32目录中。 运行 "ANALYZE.EXE -X E:\VSS\data" (后面添对应的目录)。 便会找出对应的出错的文件。 再 “ANALYZE -F e:\vss\data” (需要所有的用户都退出VSS后才能执行)。 每次执行一条命…

Vue 组件自定义事件

文章目录绑定方式一方式二解绑解绑一个自定义事件解绑多个自定义事件一些坑情况一情况二总结TodoList 改为自定义事件绑定绑定 方式一 App 中有 School 组件和 Student 组件&#xff0c;现在我们要实现子组件向父组件传递数据&#xff0c;即 School 组件和 Student 组件向 App…

有关使用 iview 表单验证的问题

Vue的UI解决框架&#xff0c;element-UI&#xff0c; iview-UI 有关表单验证使用的是同一个插件&#xff0c;async-validator&#xff0c;有关这个插件的用法就不做赘述&#xff0c;但是在iview表单的使用中可能会用到验证不起作用的问题&#xff0c;原因是给表单绑定的value是…

Vue 全局事件总线

文章目录介绍使用总结todolist 改为全局事件总线介绍 在 vue 里我们可以通过全局事件总线来实现任意组件之间通信 它的原理是给 Vue 的原型对象上面添加一个属性。这样的话我所有组件的都可以访问到这个属性&#xff0c;然后可以通过这个属性来访问其他组件给这个属性上面绑定…

C#3.0学习(3)---匿名类型

匿名类型是在初始化的时候根据初始化列表自动产生类型的一种机制&#xff0c;利用对象初始化器来创建匿名对象的对象。如: var oecnew {Name"oec2003", Age100} 在创建对象的语句中用到了var和new两个关键字&#xff0c;var关键字用来声明一个匿名类型的对象名字&…

canvas.addEventListener()

对 canvas 元素的事件监听用addEventListener()实现&#xff0c; 但是有一点缺陷是&#xff1a;canvas 不支持键盘事件&#xff0c;为了解决这个问题&#xff0c;可以采用以下两种方案&#xff1a; 方案一&#xff1a; key event ---- use window as object 通过window对象实现…

css3 background-sizing 属性,捎带 background-repeat 属性

background-sizing:  contain: 在指定大小的容器内把图像按照图像本身长宽比扩展到最大尺寸&#xff0c;有可能有留白  cover: 在指定大小的容器内&#xff0c;把图像按照图像本身的长宽比扩展到足够大&#xff0c;已能够把整个背景全部覆盖&#xff0c;图像的某些部位可能…