vue实例中的知识点

1.前端的数据存储使用window.localStorage,使用localStorage接口可以数据直接存储在浏览器里。
两个重要的方法:
localStorage.setItem(‘myCat’, ‘Tom’);//(键,值)
let cat = localStorage.getItem(‘myCat’);
localstorage的封装

/*作用:把原生的localStorage封装,使它在我们这个项目中更好用,更方便*/
/*做两个方法,并把它暴露出去*/
/*通过定义一个匿名函数,创建了一个新的函数作用域,
相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。*/
;(function(){
    /*把方法暴露出去*/
    window.ms = {
        set: set,
        get: get,
    };
    /*存数据的方法*/
    function set(key, val){
        localStorage.setItem(key, JSON.stringify(val));/*将传进来的值转换成json字符串。*/
    }
    /*取数据的方法*/
    function get(key){
        var json = localStorage.getItem(key);
        if(json)
        {
            return JSON.parse(json);
        }
    }
})();
/*在另一个文件中使用
* ms.set('name', '王花花');
* var val = ms.get('name');
* console.log(val);
* */
* 

2.Object.assign() 方法用于将所有可枚举属性的
值从一个或多个源对象复制到目标对象。它将返回目标对象。

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };

const returnedTarget = Object.assign(target, source);


console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }

console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }

复制一个对象

add: function(){
       if(!this.current.title && this.current.title !== 0)
        {
            return;
        }else{
           /*this.list.push(this.current);*/
           /*this.current一直是个引用,并没有拷贝数据,需要用Object.assign(target,source)来拷贝一个对象*/
           var todo = Object.assign({},this.current);
           this.list.push(todo);          
            }
        }

3.组件:
watch: 监测list的变化,只要他有变化,就执行handler方法。

watch: {
            list: {
                deep: true,
                handler: function(n,o){
                    if(n)
                    {
                        ms.set('list',n)
                    }else{
                        ms.set('list',[])
                    }

                }

            }
        }

4.vue中修改数组元素的方法

Vue.set(this.list,index,copy(this.current));
/*this.list[index] = copy(this.current);*/

//给数组元素对象设置属性。
Vue.set(this.list[index], 'completed',!this.list[index].completed);
/*this.list[index].complete = !this.list[index].complete;*/

 Vue.set(me.list[i],'alert_confirm',confirmed);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值