Web(vue)本地存储

news/2024/7/19 14:18:49 标签: 字符串, js, vue, javascript, html
htmledit_views">

html" title=vue>vue本地存储">Web(html" title=vue>vue)本地存储

Web Storage API

关键对象

  • window.sessionStorage对象用于区域存储;
  • window.localStorage对象用于本地存储。

特点

  1. 数据的设置和读取比较方便。
  2. 容量较大,sessionStorage大约为5MB,localStorage大约为20MB。
  3. 只能存储html" title=字符串>字符串,若想要存储JSON对象,则可以使用window.JSON.stringify()或者parse()进行序列化和反序列化编码

区别

sessionStorage的存储周期只有一次会话(关闭浏览器就会消失)

localStorage的存储周期是永久的(关闭浏览器数据还在),除非用户手动清除浏览器缓存文件

属性和方法

window.localStorage.setItem('键','值')

window.sessionStorage.setItem('键','值')

方法/属性描述
key(n)该方法用于返回存储对象中第n个key的名称
setItem(key, value)该方法接收一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值
getItem(key)该方法接收一个键名作为参数,返回键名对应的值
removeItem(key)该方法删除键名为key的存储内容
clear()该方法清空所有存储内容
length该属性返回Storage存储对象中包含的item的数量

localStorage简单数据存储实例

html"><!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text" id="username">
    <button id="setData">设置数据</button>
    <button id="getData">获取数据</button>
    <button id="delData">删除数据</button>

    <script>
        var username = document.querySelector('#username');
        // 单击“设置数据”按钮,设置数据
        document.querySelector('#setData').onclick = function () {
            var val = username.value; // 获取username里面的值
            //window.sessionStorage.setItem('username', val);//一个会话,关闭网页后,数据不会保存
            window.localStorage.setItem('username',val)//只要不主动清除,一直都在
        };
        // 单击“获取数据”按钮,获取数据
        document.querySelector('#getData').onclick = function () {
            // alert(window.sessionStorage.getItem('username'));
            alert(window.localStorage.getItem('username'))
        };
        // 单击“删除数据”按钮,删除数据
        document.querySelector('#delData').onclick = function () {
            // window.sessionStorage.removeItem('username');
            window.localStorage.removeItem('username')
        };

        if (window.sessionStorage) {
            // 浏览器支持sessionStorage
        } else if (window.localStorage) {
            // 浏览器支持localStorage
        }
    </script>

    </script>
</body>
</html>

html" title=vue>vue中的实例标签记录器">localStorage在Vue中的实例(标签记录器)

html" title=js>js"><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.html" title=js>jsdelivr.net/npm/html" title=vue>vue@2/dist/html" title=vue>vue.html" title=js>js"
        integrity="sha384-t1tHLsbM7bYMJCXlhr0//00jSs7ZhsAhxgm191xFsyzvieTMCbUWKMhFg9I6ci8q"
        crossorigin="anonymous"></script>

    <style>
        body {
            padding: 0;
            margin: 0;
        }
        .divcenter {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 500px;
            height: 50%;
        }
        p {
            border: solid 1px;
            margin: 0px;
            padding: 0px;
        }
        .spanX {
            float: right;
            margin-right: 10px;
            width: 10px;

        }
        span {
            cursor: pointer;
        }

        h2 {
            text-align: center;
        }
    </style>
</head>

<body>
    <div id="app" class="divcenter">
        <h2>标签记录器</h2>
        <!--文本框,设置双向绑定和回车事件-->
        <div>
            <input type="text" placeholder="请输入相应信息后按回车键!" v-model="text" @keyup.Enter="info"
                style="width: 100%;height: 40px;">
        </div>    
        <div>
               <!--回车后添加的标签和删除按钮-->
            <p v-for="(list,index) in arr">
                <span style="background-color: blanchedalmond;"> {{index+1}} </span>
                {{list}}
                <span class="spanX" @click="del(index)">x</span>
            </p>   
               <!--显示总数和清空按钮-->
            <div style="border: solid 1px;" v-show="arr.length!=0">
                <span>总数:{{arr.length}}</span>
                <span style="float: right;" @click="delAll">Clear</span>
            </div>
        </div>
    </div>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                //记录数据的数组,将保存到localStorage的html" title=字符串>字符串数据转换为对象数据重新保存到数组中
                arr: JSON.parse(window.localStorage.getItem('UserData')||'[]'),
                text: "",
            },
            methods: {
                //回车触发事件,把文本框里的内容保存到数组arr中
                info: function () {
                    //在末尾添加一条数据
                    this.arr.push(this.text);
                    this.text = "";
                },
                //单击删除按钮触发事件,清除指定下标数组的值
                del: function (index) {
                    //根据下标删除1条数据
                    this.arr.splice(index, 1);
                },
                //单击清空按钮,清除数组arr里所有是值
                delAll: function () {
                    this.arr = [];
                }
            },
       
            //监听事件
            watch:{
                //数据在标签内部改变是否触发:true
                deep:true,
                //要记录数据的数组,(名字要好保存数据的数组名一致),当arr数据发送改变时触发,新的数据返回到newVale中
                arr(newVale){
                    //将新的对象数据转换为html" title=字符串>字符串数据赋值给变量
                    let html" title=js>json_data=JSON.stringify(newVale)
                    //将html" title=字符串>字符串数据按照键值对的方式保存到localStorage中
                    window.localStorage.setItem('UserData',html" title=js>json_data)
                }        
            }
        })  
    </script>
</body>
</html>

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

相关文章

css 两边到中间 渐变_我写CSS的常用套路,附demo的效果实现与源码

点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Accept what was and what is, and you’ll have more positive energy to pursue what will be. 接受过去和现在的模样&#xff0c;才会有能量去追寻自己的未来。 每日…

cad怎么改光标样式_如何让你的图纸看起来更漂亮?这些CAD标注技巧你都知道吗?...

作为一个强迫症患者&#xff0c;我对CAD图纸的观赏性特别高&#xff0c;完全无法接受杂乱无章的标注&#xff0c;反正就是一定要简洁&#xff01;清晰&#xff01;美观&#xff01;这样不仅自己看着舒服&#xff0c;甲方爸爸看着也舒服&#xff0c;不会一直要求改这改那的。那么…

containerbase.startinternal 子容器启动失败_k8s Pod进阶(三):初始容器

初始容器是什么初始容器((Init Containers))是Pod中 app容器运行之前首先运行的专用容器。Init容器可以不包含应用程序镜像中的实用程序或设置脚本。如何理解初始容器1&#xff0e; Pod可以有多个运行应用程序的容器&#xff0c;也可以有一个或多个init容器。2&#xff0e; Pod…

python 序列常见使用方法

python 序列常见使用方法 概念&#xff1a;所谓序列&#xff0c;指的是一块可存放多个值的连续内存空间&#xff0c;这些值按一定顺序排列&#xff0c;可通过每个值所 在位置的编号(称为索引)访问它们 序列索引 1、索引从0开始 2、索引支持负数&#xff0c;如&#xff1a;-1 代…

sap 流程图 退货销售订单_SAP期初采购暂估明细导入(老王撰文)

点击蓝字关注我吧话说老王何许人也&#xff0c;乃十堰一扛把子看了老王写的&#xff0c;我不由得精神为之一振自觉七经八脉为之一畅七窍也开了六窍半&#xff0c;自古十堰出人才君不见卡车之都盛名溢扬君不见武当携江湖道盛四方君不见陈世美为官清廉、刚正不阿老王就是这样一个…

Python 列表的常见操作

Python 列表的常见操作 从形式上看&#xff0c;列表会将所有元素都放在一对中括号[ ]里面&#xff0c;相邻元素之间用逗号,分隔&#xff0c;如下所示&#xff1a; [element1, element2, element3, ..., elementn]&#xff0c;元素类型和个数不限。 1、创建列表格式 变量名[元素…

vue 隐藏from_一篇文章带你使用Typescript封装一个Vue组件

搭建项目以及初始化配置vue create ts_vue_btn这里使用了vue CLI3自定义选择的服务&#xff0c;我选择了ts、stylus等工具。然后创建完项目之后&#xff0c;进入项目。使用快捷命令code .进入Vs code编辑器(如果没有code .&#xff0c;需要将编辑器的「bin文件目录地址」放到环…

kdj指标主要看哪个值_KDJ指标的最全面攻略文章,散户学会后看指标不再迷茫,超赞...

(本文由公众号越声投研(yslcwh)整理&#xff0c;仅供参考&#xff0c;不构成操作建议。如自行操作&#xff0c;注意仓位控制和风险自负。)我们步入了信息时代&#xff0c;知识已经是我们人类生存和生产当中最为重要的因素之一&#xff0c;而如今&#xff0c;在求知欲的趋势下&a…