Vue子应用父的方法的小案例,以及关于h5localStorage

h5的localStorage 和cookie的区别

  • localStorage的存储容量比cookie更大;

  • cookie作为http规范的一部分,它的主要作用是与服务器进行交互,使http保持连接状态。也就是你每次请求一个新的页面的时候,cookie都会被发送过去,这样无形中就浪费了宽带。

  • cookie保存是能指定可以访问该cookie的范围;localStorage的访问范围就是当前整个网站,不存在访问范围这个概念。且,两者都不支持跨域调用。

  • html5中的Web Storage包括了两种存储方式: sessionStorage和localStorage;

  • sessionStorage用于本地存储一个会话的数据,当会话结束时,存储的数据也会自动销毁(即当页面关闭的同时也销毁数据),因此,sessionStorage不是一个持久化的本地存储,仅仅是会话级别的存储。

  • localStorage用于持久化的本地存储,除非手动删除数据,否则会一直保存

localStorage的一些方法

添加键值对: localStorage.setItem(key,value);
​
获取键值对: localStorage.getItem(key);
​
删除键值对: localStorage.removeItem(key);
​
清除所有键值对: localStorage.clear();
​
获取localStorage的属性名称(键名称): localStorage.key(index);
​
获取localStorage中保存的键值对的数量: localStorage.length;

Vue 评论案例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="./lib/bootstrap-3.3.7.css">
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id='app'>
        <addinfo @func='show'></addinfo>
        <ul class="list-group" >
            <div v-for='(item,index) in person' :key='index'>
                    <li class="list-group-item">{{item.say}}
                            <span class="badge">{{item.dataTime}}</span>
                            <span class="badge">{{item.name}}</span>
                    </li>
            </div>
        </ul>
    </div>
    <template id='add'>
        <div class="form-group">
            <div class="form-group">
                    姓名<input type="text" class="form-control" v-model='name1'>
                    名句<input type="text" class="form-control" v-model='say1'>
            </div>
            <button class="btn btn-primary" @click='addfun' >添加</button>
        </div>
    </template>
    <script>
        var vm = new Vue({
            el:'#app',
            data:{
                person:[
                    {name:'李白',say:'天生我才必有用',dataTime:new Date()},
                    {name:'杜甫',say:'吹风吹又生',dataTime:new Date()},
                    {name:'曹植',say:'本是同根生',dataTime:new Date()}
                ]
            },
            mounted:function(){
                this.show();
            },
            methods:{
                show(){
                    this.person=JSON.parse(localStorage.getItem('info')||'[]')

                }

            },
            components:{
                'addinfo':{
                    template:'#add',
                    data(){
                    return {
                        name1:'',
                        say1:''
                     }
                    },
                    methods:{
                        addfun(){
                            var info = {name:this.name1,say:this.say1,dataTime:new Date()}
                            var buff = JSON.parse(localStorage.getItem('info')||'[]');
                            buff.push(info);
                            localStorage.setItem('info',JSON.stringify(buff)) 
                            this.say1=this.name1='';  
                           this.$emit('func');
                        }
                    }    


                }
                
            }

        })
    </script>
</body>
</html>
 

猜你喜欢

转载自blog.csdn.net/qq_33188846/article/details/83340716
今日推荐