Web(vue)本地存储

Web(vue)本地存储

Web Storage API

关键对象

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

特点

  1. 数据的设置和读取比较方便。
  2. 容量较大,sessionStorage大约为5MB,localStorage大约为20MB。
  3. 只能存储字符串,若想要存储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简单数据存储实例

<!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>

localStorage在Vue中的实例(标签记录器)

<!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.jsdelivr.net/npm/vue@2/dist/vue.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的字符串数据转换为对象数据重新保存到数组中
                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){
                    //将新的对象数据转换为字符串数据赋值给变量
                    let json_data=JSON.stringify(newVale)
                    //将字符串数据按照键值对的方式保存到localStorage中
                    window.localStorage.setItem('UserData',json_data)
                }        
            }
        })  
    </script>
</body>
</html>
posted @   永恒之月TEL  阅读(268)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开
  1. 1 Welcome Home REOL
  2. 2 Everywhere We Go REOL
  3. 3 凄美地 REOL
  4. 4 最后一页 REOL
Everywhere We Go - REOL
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 陈冠希/MC仁/厨房仔

作曲 : Wyshmaster

编曲 : Wyshmaster

应采儿:

应采儿:

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

厨房仔:

走 去一个冇压力嘅地方

尽情释放 唔驶理人哋眼光

黑色白色 唔驶睇人面色

意识空间 拥有无穷面积

日出 日落 升空 降落

一幕又一幕 如梦生命片段重现

边一幕最值得回味快乐

世世代代 一个一个部落起落

边度着落 降临福地

地球人 已经忘记 幸福 气味

太空旅程 一步内 由呢度去到个度

两道光线引导 启动星际航导

随意门 去边度就边度

感应天路 走佬

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

陈冠希:

细个个阵时日日喺度发梦

老师话我长大之后一定冇用

你咁嘅态度 我戥你老豆老母阴公

但系今时今日 超西飞喺天空

飞 飞到洛杉矶

飞飞飞 继续超越自己

而家飞飞飞度边度都似我屋企

同我之前啲老师

我而家举起我个杯

我冇放喺心内向你敬礼

一齐猜猜个枚

247 玩成晚我同啲兄弟

唔会嗌攰

代表 clot 你可以叫我地 clot crew

巴黎东京纽约马尔代夫

感觉世界好闷

细个发啲梦开始变现实

除咗佢我个世界争咩 无乜

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

MC仁:

准备包袱走路 一步一步计算好

冇最后说话 最后手稿

冇嘢要透露 冇人走宝

掉埋包袱走佬 冇论乜嘢地步

不理疲劳

天与地当被铺 冇任务 几咁好

应采儿:

On a boat on a train or in an airplane

There's nothing I'd rather do

When we fly in the sky and we go so high

I've got the world with you

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储

去到每一度 点解总会有得嘈

难度继续困死阴湿小气岛

我有一路 清楚找我有幅图

闲话素来任你讲卡都好储