vue.js学习笔记(2)— sessionStorage存储和获取数据

摘要:
渲染:上部代码:˂!

效果图:

vue.js学习笔记(2)— sessionStorage存储和获取数据第1张

上代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <title>session</title>
        <script src="https://unpkg.com/vue/dist/vue.js"></script>
        <style type="text/css">
            #session {
                width: 600px;
                margin: 0 auto;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <div id="session">
            <input type="text" v-on:keyup.enter="addNew()" v-model="inputValue" placeholder="请输入要保存的数据"/>
            <ul>
                <li v-for="item in items">{{ item.name }}</li>
            </ul>
        </div>
        
        <script>
            var storeKey = "studentName";
            var storage = {
                fetch:function(){
                    return JSON.parse(sessionStorage.getItem(storeKey) || "[]")
                },
                save:function(items){
                    console.log("00001");
                    sessionStorage.setItem(storeKey,JSON.stringify(items));
                }
            }
            var vm = new Vue({
                el:"#session",
                data:{
                    items:storage.fetch(),
                    inputValue:""
                },
                methods:{
                    //向数组添加内容
                    addNew:function(){
                        this.items.push({
                            name:this.inputValue
                        }),
                        this.inputValue = null
                    }
                },
                watch:{
                    //监听items的变化
                    items:{
                        handler:function(items){
                            storage.save(items);
                        },
                        deep:true
                    }
                }
            })
        </script>
    </body>
</html>

代码解读:

  vue实例当中的data对象中用到了读取数据的方法,但是依据vue的生命周期,data是先读取的,所以,如果把方法写到methods对象当中是会报错的,所以,我把方法写到了vue实例前的storage对象当中;然后呐,html当中keyup.enter当中的enter是事件修饰符,代表在输入完毕点击enter的时候会触发addNew()这个方法,这个方法是向空数组(items)添加数据,这当中inputValue是双向绑定的,而且为了体验度更高,enter之后把input值清空,方便下次直接输入;addNew()方法之后,虽然向数组添加了你输入的内容,但是这些内容并没有添加到我们的sessionStorage会话里面,这样的话,我们items.fetch()是取不到值的,所以要来一个监听函数,watch.items应运而生,代表着实时监控items的变化,然后通过.save()方法向sessionStorage添加数据,添加数据的时候要转化成json字符串类型,不然会报错,然后我们就可以在fetch()方法里面调用了

免责声明:文章转载自《vue.js学习笔记(2)— sessionStorage存储和获取数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python3基础 list for+continue 输出1-50之间的偶数unity中使用VideoPalyer播放本地视频下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用js把数据从一个页面传到另一个页面

打开支付宝首页搜索: 4046160(可保存下来,每天可领一次) 领取方式,一定要点击 立即领取 按钮 这个才是金额比较大的余额宝红包。 红包平均为 3-5块 ,每天可领一次,有效期三天,必须上一次领的用了才可以领取下一个。 使用方法: 淘宝购物、门店付款、个人收款码、水电煤缴费、还信用卡都可以,但是 必须使用余额宝支付,付款金额大于等于红包就可以。 重...

Vue前端实现登陆功能

在登陆组件中找到登陆按钮,绑定点击事件 <button @click="loginhander">登录</button> 在methods中请求后端 export default { name: 'Login', data(){ return { login_type: 0, r...

利用H5缓存机制实现点击按钮第一次与之后再点击分别跳转不同页面

昨天碰到这样一个需求,要求点击按钮第一次跳转到a页面,之后再点击它就跳转到b页面。这个问题我首先就想到了利用H5的缓存sessionstorage来实现,SessionStorage用于本地存储一个会话中的数据,窗口关闭后,数据就会消失。是一种会话级别的存储。 sessionStorage: sessionStorage.setItem("key","1"...

Vue--爬坑

1.路由变化页面数据不刷新问题; 出现这种情况是因为依赖路由的params参数获取写在created生命周期里面,因为相同路由二次甚至多次加载的关系 没有达到监听,退出页面再进入另一个文章页面并不会运行created组件生命周期,导致文章数据还是第一次进入的数据。 解决方法:watch监听路由是否变化 解决方法:watch监听路由是否变化 watch: {...

vue项目中监听sessionStorage值发生变化

首先在main.js中给Vue.protorype注册一个全局方法, 其中,我们约定好了想要监听的sessionStorage的key值为’watchStorage’, 然后创建一个StorageEvent方法,当我在执行sessionStorage.setItem(k, val)这句话的时候,初始化事件,并派发事件。 1 Vue.prototype.re...

【Vue】vuex存储和本地存储(localstorage、sessionstorage)的区别

sessionStorage   sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。   用法:     储存: 1. 点(.)运算符 sessionStorage.lastname = 'JSAnntQ';         2. 方括号([ ])运算符 sessionStorage['last...